comparison src/share/vm/interpreter/linkResolver.cpp @ 2416:38fea01eb669

6817525: turn on method handle functionality by default for JSR 292 Summary: After appropriate testing, we need to turn on EnableMethodHandles and EnableInvokeDynamic by default. Reviewed-by: never, kvn, jrose, phh
author twisti
date Thu, 31 Mar 2011 02:31:57 -0700
parents d2134498fd3f
children ed69575596ac
comparison
equal deleted inserted replaced
2415:09f96c3ff1ad 2416:38fea01eb669
174 // 174 //
175 // According to JVM spec. $5.4.3c & $5.4.3d 175 // According to JVM spec. $5.4.3c & $5.4.3d
176 176
177 void LinkResolver::lookup_method_in_klasses(methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS) { 177 void LinkResolver::lookup_method_in_klasses(methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS) {
178 methodOop result_oop = klass->uncached_lookup_method(name, signature); 178 methodOop result_oop = klass->uncached_lookup_method(name, signature);
179 if (EnableMethodHandles && result_oop != NULL) { 179 if (EnableInvokeDynamic && result_oop != NULL) {
180 switch (result_oop->intrinsic_id()) { 180 switch (result_oop->intrinsic_id()) {
181 case vmIntrinsics::_invokeExact: 181 case vmIntrinsics::_invokeExact:
182 case vmIntrinsics::_invokeGeneric: 182 case vmIntrinsics::_invokeGeneric:
183 case vmIntrinsics::_invokeDynamic: 183 case vmIntrinsics::_invokeDynamic:
184 // Do not link directly to these. The VM must produce a synthetic one using lookup_implicit_method. 184 // Do not link directly to these. The VM must produce a synthetic one using lookup_implicit_method.
212 212
213 void LinkResolver::lookup_implicit_method(methodHandle& result, 213 void LinkResolver::lookup_implicit_method(methodHandle& result,
214 KlassHandle klass, Symbol* name, Symbol* signature, 214 KlassHandle klass, Symbol* name, Symbol* signature,
215 KlassHandle current_klass, 215 KlassHandle current_klass,
216 TRAPS) { 216 TRAPS) {
217 if (EnableMethodHandles && 217 if (EnableInvokeDynamic &&
218 klass() == SystemDictionary::MethodHandle_klass() && 218 klass() == SystemDictionary::MethodHandle_klass() &&
219 methodOopDesc::is_method_handle_invoke_name(name)) { 219 methodOopDesc::is_method_handle_invoke_name(name)) {
220 if (!THREAD->is_Compiler_thread() && !MethodHandles::enabled()) { 220 if (!THREAD->is_Compiler_thread() && !MethodHandles::enabled()) {
221 // Make sure the Java part of the runtime has been booted up. 221 // Make sure the Java part of the runtime has been booted up.
222 klassOop natives = SystemDictionary::MethodHandleNatives_klass(); 222 klassOop natives = SystemDictionary::MethodHandleNatives_klass();