Mercurial > hg > truffle
comparison src/share/vm/runtime/sharedRuntime.cpp @ 3274:2a23b1b5a0a8
7018355: JSR 292: VM crash in DefNewGeneration::copy_to_survivor_space
Reviewed-by: kvn, jrose
author | twisti |
---|---|
date | Mon, 18 Apr 2011 01:33:28 -0700 |
parents | 758ba0bf7bcc |
children | 167b70ff3abc |
comparison
equal
deleted
inserted
replaced
2485:97e8046e2562 | 3274:2a23b1b5a0a8 |
---|---|
1719 && required == target->method_handle_type()) { | 1719 && required == target->method_handle_type()) { |
1720 targetType = target->signature()->as_C_string(); | 1720 targetType = target->signature()->as_C_string(); |
1721 targetArity = ArgumentCount(target->signature()).size(); | 1721 targetArity = ArgumentCount(target->signature()).size(); |
1722 } | 1722 } |
1723 } | 1723 } |
1724 klassOop kignore; int dmf_flags = 0; | 1724 KlassHandle kignore; int dmf_flags = 0; |
1725 methodOop actual_method = MethodHandles::decode_method(actual, kignore, dmf_flags); | 1725 methodHandle actual_method = MethodHandles::decode_method(actual, kignore, dmf_flags); |
1726 if ((dmf_flags & ~(MethodHandles::_dmf_has_receiver | | 1726 if ((dmf_flags & ~(MethodHandles::_dmf_has_receiver | |
1727 MethodHandles::_dmf_does_dispatch | | 1727 MethodHandles::_dmf_does_dispatch | |
1728 MethodHandles::_dmf_from_interface)) != 0) | 1728 MethodHandles::_dmf_from_interface)) != 0) |
1729 actual_method = NULL; // MH does extra binds, drops, etc. | 1729 actual_method = methodHandle(); // MH does extra binds, drops, etc. |
1730 bool has_receiver = ((dmf_flags & MethodHandles::_dmf_has_receiver) != 0); | 1730 bool has_receiver = ((dmf_flags & MethodHandles::_dmf_has_receiver) != 0); |
1731 if (actual_method != NULL) { | 1731 if (actual_method.not_null()) { |
1732 mhName = actual_method->signature()->as_C_string(); | 1732 mhName = actual_method->signature()->as_C_string(); |
1733 mhArity = ArgumentCount(actual_method->signature()).size(); | 1733 mhArity = ArgumentCount(actual_method->signature()).size(); |
1734 if (!actual_method->is_static()) mhArity += 1; | 1734 if (!actual_method->is_static()) mhArity += 1; |
1735 } else if (java_lang_invoke_MethodHandle::is_instance(actual)) { | 1735 } else if (java_lang_invoke_MethodHandle::is_instance(actual)) { |
1736 oopDesc* mhType = java_lang_invoke_MethodHandle::type(actual); | 1736 oopDesc* mhType = java_lang_invoke_MethodHandle::type(actual); |