for review (XXL): 6655638 method handles for invokedynamic

Christian Thalinger Christian.Thalinger at Sun.COM
Thu Feb 12 08:55:59 PST 2009


On Tue, 2009-01-20 at 02:53 -0800, John Rose wrote:
> Please give it a look.

I have now reviewed all files.  At least I tried to understand what's
happening but methodHandles.{cpp,hpp} is too much, sorry.

src/share/vm/classfile/classFileParser.cpp:

ClassFileParser::java_dyn_MethodHandle_fix_pre()

(*fields_ptr) is used 7 times, readability would be much better if that
value would be assigned to a local variable.


src/share/vm/oops/instanceKlass.cpp:

instanceKlass::is_same_package_member_impl

+     klassOop next = outer1->compute_enclosing_class(ignore_name, CHECK_(false));
+     klassOop next = outer2->compute_enclosing_class(ignore_name, CHECK_(false));

There is a define CHECK_false for CHECK_(false).


src/share/vm/prims/methodHandles.cpp:

void MethodHandles::set_enabled(bool z) {

This method can also disable the method handle, right?  Wouldn't it be
clearer if there is a set_enabled() (or enable()) and a set_disabled()
(disable()) method (without an argument)?

Typo in line 538:
// which refers dirctly to JVM internals.

void MethodHandles::expand_MemberName(Handle mname, int suppress, TRAPS) {

        //Handle name = java_lang_String::create_from_symbol(m->name(), CHECK);
        Handle name = StringTable::intern(m->name(), CHECK);

Is that intentional?

-- Christian




More information about the hotspot-compiler-dev mailing list