Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/classFileParser.cpp @ 2357:8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
Summary: package and class renaming only; delete unused methods and classes
Reviewed-by: twisti
author | jrose |
---|---|
date | Fri, 11 Mar 2011 22:34:57 -0800 |
parents | 72dee110246f |
children | c7f3d0b4570f |
comparison
equal
deleted
inserted
replaced
2356:72dee110246f | 2357:8033953d67ff |
---|---|
2804 } | 2804 } |
2805 | 2805 |
2806 | 2806 |
2807 // Force MethodHandle.vmentry to be an unmanaged pointer. | 2807 // Force MethodHandle.vmentry to be an unmanaged pointer. |
2808 // There is no way for a classfile to express this, so we must help it. | 2808 // There is no way for a classfile to express this, so we must help it. |
2809 void ClassFileParser::java_dyn_MethodHandle_fix_pre(constantPoolHandle cp, | 2809 void ClassFileParser::java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle cp, |
2810 typeArrayHandle fields, | 2810 typeArrayHandle fields, |
2811 FieldAllocationCount *fac_ptr, | 2811 FieldAllocationCount *fac_ptr, |
2812 TRAPS) { | 2812 TRAPS) { |
2813 // Add fake fields for java.dyn.MethodHandle instances | 2813 // Add fake fields for java.lang.invoke.MethodHandle instances |
2814 // | 2814 // |
2815 // This is not particularly nice, but since there is no way to express | 2815 // This is not particularly nice, but since there is no way to express |
2816 // a native wordSize field in Java, we must do it at this level. | 2816 // a native wordSize field in Java, we must do it at this level. |
2817 | 2817 |
2818 if (!EnableMethodHandles) return; | 2818 if (!EnableMethodHandles) return; |
2828 } | 2828 } |
2829 | 2829 |
2830 if (AllowTransitionalJSR292 && word_sig_index == 0) return; | 2830 if (AllowTransitionalJSR292 && word_sig_index == 0) return; |
2831 if (word_sig_index == 0) | 2831 if (word_sig_index == 0) |
2832 THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), | 2832 THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), |
2833 "missing I or J signature (for vmentry) in java.dyn.MethodHandle"); | 2833 "missing I or J signature (for vmentry) in java.lang.invoke.MethodHandle"); |
2834 | 2834 |
2835 // Find vmentry field and change the signature. | 2835 // Find vmentry field and change the signature. |
2836 bool found_vmentry = false; | 2836 bool found_vmentry = false; |
2837 for (int i = 0; i < fields->length(); i += instanceKlass::next_offset) { | 2837 for (int i = 0; i < fields->length(); i += instanceKlass::next_offset) { |
2838 int name_index = fields->ushort_at(i + instanceKlass::name_index_offset); | 2838 int name_index = fields->ushort_at(i + instanceKlass::name_index_offset); |
2868 } | 2868 } |
2869 | 2869 |
2870 if (AllowTransitionalJSR292 && !found_vmentry) return; | 2870 if (AllowTransitionalJSR292 && !found_vmentry) return; |
2871 if (!found_vmentry) | 2871 if (!found_vmentry) |
2872 THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), | 2872 THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), |
2873 "missing vmentry byte field in java.dyn.MethodHandle"); | 2873 "missing vmentry byte field in java.lang.invoke.MethodHandle"); |
2874 } | 2874 } |
2875 | 2875 |
2876 | 2876 |
2877 instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name, | 2877 instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name, |
2878 Handle class_loader, | 2878 Handle class_loader, |
3233 // Add fake fields for java.lang.Class instances (also see below) | 3233 // Add fake fields for java.lang.Class instances (also see below) |
3234 if (class_name == vmSymbols::java_lang_Class() && class_loader.is_null()) { | 3234 if (class_name == vmSymbols::java_lang_Class() && class_loader.is_null()) { |
3235 java_lang_Class_fix_pre(&methods, &fac, CHECK_(nullHandle)); | 3235 java_lang_Class_fix_pre(&methods, &fac, CHECK_(nullHandle)); |
3236 } | 3236 } |
3237 | 3237 |
3238 // adjust the vmentry field declaration in java.dyn.MethodHandle | 3238 // adjust the vmentry field declaration in java.lang.invoke.MethodHandle |
3239 if (EnableMethodHandles && class_name == vmSymbols::java_dyn_MethodHandle() && class_loader.is_null()) { | 3239 if (EnableMethodHandles && class_name == vmSymbols::java_lang_invoke_MethodHandle() && class_loader.is_null()) { |
3240 java_dyn_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); | 3240 java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); |
3241 } | |
3242 if (AllowTransitionalJSR292 && | |
3243 EnableMethodHandles && class_name == vmSymbols::java_dyn_MethodHandle() && class_loader.is_null()) { | |
3244 java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); | |
3241 } | 3245 } |
3242 if (AllowTransitionalJSR292 && | 3246 if (AllowTransitionalJSR292 && |
3243 EnableMethodHandles && class_name == vmSymbols::sun_dyn_MethodHandleImpl() && class_loader.is_null()) { | 3247 EnableMethodHandles && class_name == vmSymbols::sun_dyn_MethodHandleImpl() && class_loader.is_null()) { |
3244 // allow vmentry field in MethodHandleImpl also | 3248 // allow vmentry field in MethodHandleImpl also |
3245 java_dyn_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); | 3249 java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); |
3246 } | 3250 } |
3247 | 3251 |
3248 // Add a fake "discovered" field if it is not present | 3252 // Add a fake "discovered" field if it is not present |
3249 // for compatibility with earlier jdk's. | 3253 // for compatibility with earlier jdk's. |
3250 if (class_name == vmSymbols::java_lang_ref_Reference() | 3254 if (class_name == vmSymbols::java_lang_ref_Reference() |