src/share/vm/oops/methodOop.cpp

changeset 2017
e0ba4e04c839
parent 1907
c18cbe5936b8
child 2047
d2ede61b7a12
     1.1 --- a/src/share/vm/oops/methodOop.cpp	Fri Jul 16 08:29:42 2010 -0700
     1.2 +++ b/src/share/vm/oops/methodOop.cpp	Fri Jul 16 18:14:19 2010 -0700
     1.3 @@ -851,9 +851,15 @@
     1.4  // MethodHandleCompiler.
     1.5  // Must be consistent with MethodHandleCompiler::get_method_oop().
     1.6  bool methodOopDesc::is_method_handle_adapter() const {
     1.7 -  return (is_method_handle_invoke_name(name()) &&
     1.8 -          is_synthetic() &&
     1.9 -          MethodHandleCompiler::klass_is_method_handle_adapter_holder(method_holder()));
    1.10 +  if (is_synthetic() &&
    1.11 +      !is_native() &&   // has code from MethodHandleCompiler
    1.12 +      is_method_handle_invoke_name(name()) &&
    1.13 +      MethodHandleCompiler::klass_is_method_handle_adapter_holder(method_holder())) {
    1.14 +    assert(!is_method_handle_invoke(), "disjoint");
    1.15 +    return true;
    1.16 +  } else {
    1.17 +    return false;
    1.18 +  }
    1.19  }
    1.20  
    1.21  methodHandle methodOopDesc::make_invoke_method(KlassHandle holder,

mercurial