6986944: JSR 292 assert(caller_nm->is_method_handle_return(caller_frame.pc())) failed: must be MH call site

Fri, 24 Sep 2010 03:51:43 -0700

author
twisti
date
Fri, 24 Sep 2010 03:51:43 -0700
changeset 2173
c93c652551b5
parent 2172
c40600e85311
child 2175
861f533d12b0

6986944: JSR 292 assert(caller_nm->is_method_handle_return(caller_frame.pc())) failed: must be MH call site
Reviewed-by: never, kvn

src/cpu/x86/vm/methodHandles_x86.cpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciMethod.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/x86/vm/methodHandles_x86.cpp	Wed Sep 22 23:51:03 2010 -0700
     1.2 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp	Fri Sep 24 03:51:43 2010 -0700
     1.3 @@ -346,7 +346,7 @@
     1.4      if (stack_dump_count > 64)  stack_dump_count = 48;
     1.5      for (i = 0; i < stack_dump_count; i += 4) {
     1.6        printf(" dump at SP[%d] "INTPTR_FORMAT": "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT" "INTPTR_FORMAT"\n",
     1.7 -             i, &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
     1.8 +             i, (intptr_t) &entry_sp[i+0], entry_sp[i+0], entry_sp[i+1], entry_sp[i+2], entry_sp[i+3]);
     1.9      }
    1.10      print_method_handle(mh);
    1.11    }
     2.1 --- a/src/share/vm/ci/ciMethod.cpp	Wed Sep 22 23:51:03 2010 -0700
     2.2 +++ b/src/share/vm/ci/ciMethod.cpp	Fri Sep 24 03:51:43 2010 -0700
     2.3 @@ -735,7 +735,11 @@
     2.4  // Return true if the method is an instance of one of the two
     2.5  // signature-polymorphic MethodHandle methods, invokeExact or invokeGeneric.
     2.6  bool ciMethod::is_method_handle_invoke() const {
     2.7 -  if (!is_loaded())  return false;
     2.8 +  if (!is_loaded()) {
     2.9 +    bool flag = (holder()->name() == ciSymbol::java_dyn_MethodHandle() &&
    2.10 +                 methodOopDesc::is_method_handle_invoke_name(name()->sid()));
    2.11 +    return flag;
    2.12 +  }
    2.13    VM_ENTRY_MARK;
    2.14    return get_methodOop()->is_method_handle_invoke();
    2.15  }

mercurial