Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/javaClasses.cpp @ 2460:ed69575596ac
6981791: remove experimental code for JSR 292
Reviewed-by: twisti
author | jrose |
---|---|
date | Thu, 07 Apr 2011 17:02:30 -0700 |
parents | 352622fd140a |
children | 3449f5e02cc4 |
comparison
equal
deleted
inserted
replaced
2459:55973726c600 | 2460:ed69575596ac |
---|---|
64 if (allow_super) | 64 if (allow_super) |
65 return ik->find_field(name_symbol, signature_symbol, fd) != NULL; | 65 return ik->find_field(name_symbol, signature_symbol, fd) != NULL; |
66 else | 66 else |
67 return ik->find_local_field(name_symbol, signature_symbol, fd); | 67 return ik->find_local_field(name_symbol, signature_symbol, fd); |
68 } | 68 } |
69 | |
70 static bool find_hacked_field(instanceKlass* ik, | |
71 Symbol* name_symbol, Symbol* signature_symbol, | |
72 fieldDescriptor* fd, | |
73 bool allow_super = false) { | |
74 bool found = find_field(ik, name_symbol, signature_symbol, fd, allow_super); | |
75 if (!found && AllowTransitionalJSR292) { | |
76 Symbol* backup_sig = SystemDictionary::find_backup_signature(signature_symbol); | |
77 if (backup_sig != NULL) { | |
78 found = find_field(ik, name_symbol, backup_sig, fd, allow_super); | |
79 if (TraceMethodHandles) { | |
80 ResourceMark rm; | |
81 tty->print_cr("MethodHandles: %s.%s: backup for %s => %s%s", | |
82 ik->name()->as_C_string(), name_symbol->as_C_string(), | |
83 signature_symbol->as_C_string(), backup_sig->as_C_string(), | |
84 (found ? "" : " (NOT FOUND)")); | |
85 } | |
86 } | |
87 } | |
88 return found; | |
89 } | |
90 #define find_field find_hacked_field /* remove after AllowTransitionalJSR292 */ | |
91 | 69 |
92 // Helpful routine for computing field offsets at run time rather than hardcoding them | 70 // Helpful routine for computing field offsets at run time rather than hardcoding them |
93 static void | 71 static void |
94 compute_offset(int &dest_offset, | 72 compute_offset(int &dest_offset, |
95 klassOop klass_oop, Symbol* name_symbol, Symbol* signature_symbol, | 73 klassOop klass_oop, Symbol* name_symbol, Symbol* signature_symbol, |
2331 | 2309 |
2332 void java_lang_invoke_MethodHandle::compute_offsets() { | 2310 void java_lang_invoke_MethodHandle::compute_offsets() { |
2333 klassOop k = SystemDictionary::MethodHandle_klass(); | 2311 klassOop k = SystemDictionary::MethodHandle_klass(); |
2334 if (k != NULL && EnableInvokeDynamic) { | 2312 if (k != NULL && EnableInvokeDynamic) { |
2335 bool allow_super = false; | 2313 bool allow_super = false; |
2336 if (AllowTransitionalJSR292) allow_super = true; // temporary, to access java.dyn.MethodHandleImpl | |
2337 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super); | 2314 compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super); |
2338 compute_offset(_vmtarget_offset, k, vmSymbols::vmtarget_name(), vmSymbols::object_signature(), allow_super); | 2315 compute_offset(_vmtarget_offset, k, vmSymbols::vmtarget_name(), vmSymbols::object_signature(), allow_super); |
2339 compute_offset(_vmentry_offset, k, vmSymbols::vmentry_name(), vmSymbols::machine_word_signature(), allow_super); | 2316 compute_offset(_vmentry_offset, k, vmSymbols::vmentry_name(), vmSymbols::machine_word_signature(), allow_super); |
2340 | 2317 |
2341 // Note: MH.vmslots (if it is present) is a hoisted copy of MH.type.form.vmslots. | 2318 // Note: MH.vmslots (if it is present) is a hoisted copy of MH.type.form.vmslots. |