22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
26 #include "classfile/altHashing.hpp" |
26 #include "classfile/altHashing.hpp" |
|
27 #include "classfile/classLoaderData.inline.hpp" |
27 #include "classfile/javaClasses.inline.hpp" |
28 #include "classfile/javaClasses.inline.hpp" |
|
29 #include "classfile/moduleEntry.hpp" |
28 #include "classfile/stringTable.hpp" |
30 #include "classfile/stringTable.hpp" |
29 #include "classfile/vmSymbols.hpp" |
31 #include "classfile/vmSymbols.hpp" |
30 #include "code/debugInfo.hpp" |
32 #include "code/debugInfo.hpp" |
31 #include "code/dependencyContext.hpp" |
33 #include "code/dependencyContext.hpp" |
32 #include "code/pcDesc.hpp" |
34 #include "code/pcDesc.hpp" |
787 // Initialize static fields |
789 // Initialize static fields |
788 InstanceKlass::cast(k())->do_local_static_fields(&initialize_static_field, mirror, CHECK); |
790 InstanceKlass::cast(k())->do_local_static_fields(&initialize_static_field, mirror, CHECK); |
789 } |
791 } |
790 |
792 |
791 void java_lang_Class::create_mirror(KlassHandle k, Handle class_loader, |
793 void java_lang_Class::create_mirror(KlassHandle k, Handle class_loader, |
792 Handle protection_domain, TRAPS) { |
794 Handle module, Handle protection_domain, TRAPS) { |
793 assert(k->java_mirror() == NULL, "should only assign mirror once"); |
795 assert(k->java_mirror() == NULL, "should only assign mirror once"); |
794 // Use this moment of initialization to cache modifier_flags also, |
796 // Use this moment of initialization to cache modifier_flags also, |
795 // to support Class.getModifiers(). Instance classes recalculate |
797 // to support Class.getModifiers(). Instance classes recalculate |
796 // the cached flags after the class file is parsed, but before the |
798 // the cached flags after the class file is parsed, but before the |
797 // class is put into the system dictionary. |
799 // class is put into the system dictionary. |
847 |
849 |
848 // set the classLoader field in the java_lang_Class instance |
850 // set the classLoader field in the java_lang_Class instance |
849 assert(class_loader() == k->class_loader(), "should be same"); |
851 assert(class_loader() == k->class_loader(), "should be same"); |
850 set_class_loader(mirror(), class_loader()); |
852 set_class_loader(mirror(), class_loader()); |
851 |
853 |
|
854 // set the module field in the java_lang_Class instance |
|
855 // This may be null during bootstrap but will get fixed up later on. |
|
856 set_module(mirror(), module()); |
|
857 |
852 // Setup indirection from klass->mirror last |
858 // Setup indirection from klass->mirror last |
853 // after any exceptions can happen during allocations. |
859 // after any exceptions can happen during allocations. |
854 if (!k.is_null()) { |
860 if (!k.is_null()) { |
855 k->set_java_mirror(mirror()); |
861 k->set_java_mirror(mirror()); |
|
862 } |
|
863 |
|
864 // Keep list of classes needing java.base module fixup. |
|
865 if (!ModuleEntryTable::javabase_defined()) { |
|
866 if (fixup_module_field_list() == NULL) { |
|
867 GrowableArray<Klass*>* list = |
|
868 new (ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(500, true); |
|
869 set_fixup_module_field_list(list); |
|
870 } |
|
871 fixup_module_field_list()->push(k()); |
856 } |
872 } |
857 } else { |
873 } else { |
858 if (fixup_mirror_list() == NULL) { |
874 if (fixup_mirror_list() == NULL) { |
859 GrowableArray<Klass*>* list = |
875 GrowableArray<Klass*>* list = |
860 new (ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(40, true); |
876 new (ResourceObj::C_HEAP, mtClass) GrowableArray<Klass*>(40, true); |
927 } |
947 } |
928 |
948 |
929 oop java_lang_Class::class_loader(oop java_class) { |
949 oop java_lang_Class::class_loader(oop java_class) { |
930 assert(_class_loader_offset != 0, "must be set"); |
950 assert(_class_loader_offset != 0, "must be set"); |
931 return java_class->obj_field(_class_loader_offset); |
951 return java_class->obj_field(_class_loader_offset); |
|
952 } |
|
953 |
|
954 oop java_lang_Class::module(oop java_class) { |
|
955 assert(_module_offset != 0, "must be set"); |
|
956 return java_class->obj_field(_module_offset); |
|
957 } |
|
958 |
|
959 void java_lang_Class::set_module(oop java_class, oop module) { |
|
960 assert(_module_offset != 0, "must be set"); |
|
961 java_class->obj_field_put(_module_offset, module); |
932 } |
962 } |
933 |
963 |
934 oop java_lang_Class::create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS) { |
964 oop java_lang_Class::create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS) { |
935 // This should be improved by adding a field at the Java level or by |
965 // This should be improved by adding a field at the Java level or by |
936 // introducing a new VM klass (see comment in ClassFileParser) |
966 // introducing a new VM klass (see comment in ClassFileParser) |
1114 |
1144 |
1115 compute_offset(_component_mirror_offset, |
1145 compute_offset(_component_mirror_offset, |
1116 k, vmSymbols::componentType_name(), |
1146 k, vmSymbols::componentType_name(), |
1117 vmSymbols::class_signature()); |
1147 vmSymbols::class_signature()); |
1118 |
1148 |
|
1149 compute_offset(_module_offset, |
|
1150 k, vmSymbols::module_name(), |
|
1151 vmSymbols::module_signature()); |
|
1152 |
1119 // Init lock is a C union with component_mirror. Only instanceKlass mirrors have |
1153 // Init lock is a C union with component_mirror. Only instanceKlass mirrors have |
1120 // init_lock and only ArrayKlass mirrors have component_mirror. Since both are oops |
1154 // init_lock and only ArrayKlass mirrors have component_mirror. Since both are oops |
1121 // GC treats them the same. |
1155 // GC treats them the same. |
1122 _init_lock_offset = _component_mirror_offset; |
1156 _init_lock_offset = _component_mirror_offset; |
1123 |
1157 |
1666 if (source != NULL) { |
1700 if (source != NULL) { |
1667 source_file_name = source->as_C_string(); |
1701 source_file_name = source->as_C_string(); |
1668 buf_len += (int)strlen(source_file_name); |
1702 buf_len += (int)strlen(source_file_name); |
1669 } |
1703 } |
1670 |
1704 |
|
1705 char *module_name = NULL, *module_version = NULL; |
|
1706 ModuleEntry* module = holder->module(); |
|
1707 if (module->is_named()) { |
|
1708 module_name = module->name()->as_C_string(); |
|
1709 buf_len += (int)strlen(module_name); |
|
1710 if (module->version() != NULL) { |
|
1711 module_version = module->version()->as_C_string(); |
|
1712 buf_len += (int)strlen(module_version); |
|
1713 } |
|
1714 } |
|
1715 |
1671 // Allocate temporary buffer with extra space for formatting and line number |
1716 // Allocate temporary buffer with extra space for formatting and line number |
1672 char* buf = NEW_RESOURCE_ARRAY(char, buf_len + 64); |
1717 char* buf = NEW_RESOURCE_ARRAY(char, buf_len + 64); |
1673 |
1718 |
1674 // Print stack trace line in buffer |
1719 // Print stack trace line in buffer |
1675 sprintf(buf, "\tat %s.%s", klass_name, method_name); |
1720 sprintf(buf, "\tat %s.%s(", klass_name, method_name); |
|
1721 |
|
1722 // Print module information |
|
1723 if (module_name != NULL) { |
|
1724 if (module_version != NULL) { |
|
1725 sprintf(buf + (int)strlen(buf), "%s@%s/", module_name, module_version); |
|
1726 } else { |
|
1727 sprintf(buf + (int)strlen(buf), "%s/", module_name); |
|
1728 } |
|
1729 } |
1676 |
1730 |
1677 if (!version_matches(method, version)) { |
1731 if (!version_matches(method, version)) { |
1678 strcat(buf, "(Redefined)"); |
1732 strcat(buf, "Redefined)"); |
1679 } else { |
1733 } else { |
1680 int line_number = Backtrace::get_line_number(method, bci); |
1734 int line_number = Backtrace::get_line_number(method, bci); |
1681 if (line_number == -2) { |
1735 if (line_number == -2) { |
1682 strcat(buf, "(Native Method)"); |
1736 strcat(buf, "Native Method)"); |
1683 } else { |
1737 } else { |
1684 if (source_file_name != NULL && (line_number != -1)) { |
1738 if (source_file_name != NULL && (line_number != -1)) { |
1685 // Sourcename and linenumber |
1739 // Sourcename and linenumber |
1686 sprintf(buf + (int)strlen(buf), "(%s:%d)", source_file_name, line_number); |
1740 sprintf(buf + (int)strlen(buf), "%s:%d)", source_file_name, line_number); |
1687 } else if (source_file_name != NULL) { |
1741 } else if (source_file_name != NULL) { |
1688 // Just sourcename |
1742 // Just sourcename |
1689 sprintf(buf + (int)strlen(buf), "(%s)", source_file_name); |
1743 sprintf(buf + (int)strlen(buf), "%s)", source_file_name); |
1690 } else { |
1744 } else { |
1691 // Neither sourcename nor linenumber |
1745 // Neither sourcename nor linenumber |
1692 sprintf(buf + (int)strlen(buf), "(Unknown Source)"); |
1746 sprintf(buf + (int)strlen(buf), "Unknown Source)"); |
1693 } |
1747 } |
1694 nmethod* nm = method->code(); |
1748 nmethod* nm = method->code(); |
1695 if (WizardMode && nm != NULL) { |
1749 if (WizardMode && nm != NULL) { |
1696 sprintf(buf + (int)strlen(buf), "(nmethod " INTPTR_FORMAT ")", (intptr_t)nm); |
1750 sprintf(buf + (int)strlen(buf), "(nmethod " INTPTR_FORMAT ")", (intptr_t)nm); |
1697 } |
1751 } |
2092 |
2146 |
2093 // Fill in method name |
2147 // Fill in method name |
2094 oop methodname = StringTable::intern(sym, CHECK_0); |
2148 oop methodname = StringTable::intern(sym, CHECK_0); |
2095 java_lang_StackTraceElement::set_methodName(element(), methodname); |
2149 java_lang_StackTraceElement::set_methodName(element(), methodname); |
2096 |
2150 |
|
2151 // Fill in module name and version |
|
2152 ModuleEntry* module = holder->module(); |
|
2153 if (module->is_named()) { |
|
2154 oop module_name = StringTable::intern(module->name(), CHECK_0); |
|
2155 java_lang_StackTraceElement::set_moduleName(element(), module_name); |
|
2156 oop module_version; |
|
2157 if (module->version() != NULL) { |
|
2158 module_version = StringTable::intern(module->version(), CHECK_0); |
|
2159 } else { |
|
2160 module_version = NULL; |
|
2161 } |
|
2162 java_lang_StackTraceElement::set_moduleVersion(element(), module_version); |
|
2163 } |
|
2164 |
2097 if (!version_matches(method, version)) { |
2165 if (!version_matches(method, version)) { |
2098 // The method was redefined, accurate line number information isn't available |
2166 // The method was redefined, accurate line number information isn't available |
2099 java_lang_StackTraceElement::set_fileName(element(), NULL); |
2167 java_lang_StackTraceElement::set_fileName(element(), NULL); |
2100 java_lang_StackTraceElement::set_lineNumber(element(), -1); |
2168 java_lang_StackTraceElement::set_lineNumber(element(), -1); |
2101 } else { |
2169 } else { |
2750 void java_lang_reflect_Parameter::set_executable(oop param, oop value) { |
2818 void java_lang_reflect_Parameter::set_executable(oop param, oop value) { |
2751 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
2819 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
2752 param->obj_field_put(executable_offset, value); |
2820 param->obj_field_put(executable_offset, value); |
2753 } |
2821 } |
2754 |
2822 |
|
2823 |
|
2824 int java_lang_reflect_Module::loader_offset; |
|
2825 int java_lang_reflect_Module::name_offset; |
|
2826 int java_lang_reflect_Module::_module_entry_offset = -1; |
|
2827 |
|
2828 Handle java_lang_reflect_Module::create(Handle loader, Handle module_name, TRAPS) { |
|
2829 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
|
2830 |
|
2831 Symbol* name = vmSymbols::java_lang_reflect_Module(); |
|
2832 Klass* k = SystemDictionary::resolve_or_fail(name, true, CHECK_NH); |
|
2833 instanceKlassHandle klass (THREAD, k); |
|
2834 |
|
2835 Handle jlrmh = klass->allocate_instance_handle(CHECK_NH); |
|
2836 JavaValue result(T_VOID); |
|
2837 JavaCalls::call_special(&result, jlrmh, KlassHandle(THREAD, klass()), |
|
2838 vmSymbols::object_initializer_name(), |
|
2839 vmSymbols::java_lang_reflect_module_init_signature(), |
|
2840 loader, module_name, CHECK_NH); |
|
2841 return jlrmh; |
|
2842 } |
|
2843 |
|
2844 void java_lang_reflect_Module::compute_offsets() { |
|
2845 Klass* k = SystemDictionary::reflect_Module_klass(); |
|
2846 if(NULL != k) { |
|
2847 compute_offset(loader_offset, k, vmSymbols::loader_name(), vmSymbols::classloader_signature()); |
|
2848 compute_offset(name_offset, k, vmSymbols::name_name(), vmSymbols::string_signature()); |
|
2849 MODULE_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET); |
|
2850 } |
|
2851 } |
|
2852 |
|
2853 |
|
2854 oop java_lang_reflect_Module::loader(oop module) { |
|
2855 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
|
2856 return module->obj_field(loader_offset); |
|
2857 } |
|
2858 |
|
2859 void java_lang_reflect_Module::set_loader(oop module, oop value) { |
|
2860 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
|
2861 module->obj_field_put(loader_offset, value); |
|
2862 } |
|
2863 |
|
2864 oop java_lang_reflect_Module::name(oop module) { |
|
2865 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
|
2866 return module->obj_field(name_offset); |
|
2867 } |
|
2868 |
|
2869 void java_lang_reflect_Module::set_name(oop module, oop value) { |
|
2870 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
|
2871 module->obj_field_put(name_offset, value); |
|
2872 } |
|
2873 |
|
2874 ModuleEntry* java_lang_reflect_Module::module_entry(oop module, TRAPS) { |
|
2875 assert(_module_entry_offset != -1, "Uninitialized module_entry_offset"); |
|
2876 assert(module != NULL, "module can't be null"); |
|
2877 assert(module->is_oop(), "module must be oop"); |
|
2878 |
|
2879 ModuleEntry* module_entry = (ModuleEntry*)module->address_field(_module_entry_offset); |
|
2880 if (module_entry == NULL) { |
|
2881 // If the inject field containing the ModuleEntry* is null then return the |
|
2882 // class loader's unnamed module. |
|
2883 oop loader = java_lang_reflect_Module::loader(module); |
|
2884 Handle h_loader = Handle(THREAD, loader); |
|
2885 ClassLoaderData* loader_cld = SystemDictionary::register_loader(h_loader, CHECK_NULL); |
|
2886 return loader_cld->modules()->unnamed_module(); |
|
2887 } |
|
2888 return module_entry; |
|
2889 } |
|
2890 |
|
2891 void java_lang_reflect_Module::set_module_entry(oop module, ModuleEntry* module_entry) { |
|
2892 assert(_module_entry_offset != -1, "Uninitialized module_entry_offset"); |
|
2893 assert(module != NULL, "module can't be null"); |
|
2894 assert(module->is_oop(), "module must be oop"); |
|
2895 module->address_field_put(_module_entry_offset, (address)module_entry); |
|
2896 } |
2755 |
2897 |
2756 Handle sun_reflect_ConstantPool::create(TRAPS) { |
2898 Handle sun_reflect_ConstantPool::create(TRAPS) { |
2757 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
2899 assert(Universe::is_fully_initialized(), "Need to find another solution to the reflection problem"); |
2758 Klass* k = SystemDictionary::reflect_ConstantPool_klass(); |
2900 Klass* k = SystemDictionary::reflect_ConstantPool_klass(); |
2759 instanceKlassHandle klass (THREAD, k); |
2901 instanceKlassHandle klass (THREAD, k); |
3368 |
3511 |
3369 // The field indicating parallelCapable (parallelLockMap) is only present starting in 7, |
3512 // The field indicating parallelCapable (parallelLockMap) is only present starting in 7, |
3370 Klass* k1 = SystemDictionary::ClassLoader_klass(); |
3513 Klass* k1 = SystemDictionary::ClassLoader_klass(); |
3371 compute_optional_offset(parallelCapable_offset, |
3514 compute_optional_offset(parallelCapable_offset, |
3372 k1, vmSymbols::parallelCapable_name(), vmSymbols::concurrenthashmap_signature()); |
3515 k1, vmSymbols::parallelCapable_name(), vmSymbols::concurrenthashmap_signature()); |
|
3516 |
|
3517 compute_offset(unnamedModule_offset, |
|
3518 k1, vmSymbols::unnamedModule_name(), vmSymbols::module_signature()); |
3373 |
3519 |
3374 CLASSLOADER_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET); |
3520 CLASSLOADER_INJECTED_FIELDS(INJECTED_FIELD_COMPUTE_OFFSET); |
3375 } |
3521 } |
3376 |
3522 |
3377 oop java_lang_ClassLoader::parent(oop loader) { |
3523 oop java_lang_ClassLoader::parent(oop loader) { |
3468 int java_lang_Class::_klass_offset; |
3618 int java_lang_Class::_klass_offset; |
3469 int java_lang_Class::_array_klass_offset; |
3619 int java_lang_Class::_array_klass_offset; |
3470 int java_lang_Class::_oop_size_offset; |
3620 int java_lang_Class::_oop_size_offset; |
3471 int java_lang_Class::_static_oop_field_count_offset; |
3621 int java_lang_Class::_static_oop_field_count_offset; |
3472 int java_lang_Class::_class_loader_offset; |
3622 int java_lang_Class::_class_loader_offset; |
|
3623 int java_lang_Class::_module_offset; |
3473 int java_lang_Class::_protection_domain_offset; |
3624 int java_lang_Class::_protection_domain_offset; |
3474 int java_lang_Class::_component_mirror_offset; |
3625 int java_lang_Class::_component_mirror_offset; |
3475 int java_lang_Class::_init_lock_offset; |
3626 int java_lang_Class::_init_lock_offset; |
3476 int java_lang_Class::_signers_offset; |
3627 int java_lang_Class::_signers_offset; |
3477 GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL; |
3628 GrowableArray<Klass*>* java_lang_Class::_fixup_mirror_list = NULL; |
|
3629 GrowableArray<Klass*>* java_lang_Class::_fixup_module_field_list = NULL; |
3478 int java_lang_Throwable::backtrace_offset; |
3630 int java_lang_Throwable::backtrace_offset; |
3479 int java_lang_Throwable::detailMessage_offset; |
3631 int java_lang_Throwable::detailMessage_offset; |
3480 int java_lang_Throwable::cause_offset; |
3632 int java_lang_Throwable::cause_offset; |
3481 int java_lang_Throwable::stackTrace_offset; |
3633 int java_lang_Throwable::stackTrace_offset; |
3482 int java_lang_Throwable::static_unassigned_stacktrace_offset; |
3634 int java_lang_Throwable::static_unassigned_stacktrace_offset; |
3532 int java_lang_System::static_security_offset; |
3684 int java_lang_System::static_security_offset; |
3533 int java_lang_StackTraceElement::declaringClass_offset; |
3685 int java_lang_StackTraceElement::declaringClass_offset; |
3534 int java_lang_StackTraceElement::methodName_offset; |
3686 int java_lang_StackTraceElement::methodName_offset; |
3535 int java_lang_StackTraceElement::fileName_offset; |
3687 int java_lang_StackTraceElement::fileName_offset; |
3536 int java_lang_StackTraceElement::lineNumber_offset; |
3688 int java_lang_StackTraceElement::lineNumber_offset; |
|
3689 int java_lang_StackTraceElement::moduleName_offset; |
|
3690 int java_lang_StackTraceElement::moduleVersion_offset; |
3537 int java_lang_StackFrameInfo::_declaringClass_offset; |
3691 int java_lang_StackFrameInfo::_declaringClass_offset; |
3538 int java_lang_StackFrameInfo::_memberName_offset; |
3692 int java_lang_StackFrameInfo::_memberName_offset; |
3539 int java_lang_StackFrameInfo::_bci_offset; |
3693 int java_lang_StackFrameInfo::_bci_offset; |
3540 int java_lang_StackFrameInfo::_methodName_offset; |
3694 int java_lang_StackFrameInfo::_methodName_offset; |
3541 int java_lang_StackFrameInfo::_fileName_offset; |
3695 int java_lang_StackFrameInfo::_fileName_offset; |
3573 |
3727 |
3574 void java_lang_StackTraceElement::set_lineNumber(oop element, int value) { |
3728 void java_lang_StackTraceElement::set_lineNumber(oop element, int value) { |
3575 element->int_field_put(lineNumber_offset, value); |
3729 element->int_field_put(lineNumber_offset, value); |
3576 } |
3730 } |
3577 |
3731 |
|
3732 void java_lang_StackTraceElement::set_moduleName(oop element, oop value) { |
|
3733 element->obj_field_put(moduleName_offset, value); |
|
3734 } |
|
3735 |
|
3736 void java_lang_StackTraceElement::set_moduleVersion(oop element, oop value) { |
|
3737 element->obj_field_put(moduleVersion_offset, value); |
|
3738 } |
|
3739 |
3578 // Support for java_lang_StackFrameInfo |
3740 // Support for java_lang_StackFrameInfo |
3579 void java_lang_StackFrameInfo::set_declaringClass(oop element, oop value) { |
3741 void java_lang_StackFrameInfo::set_declaringClass(oop element, oop value) { |
3580 element->obj_field_put(_declaringClass_offset, value); |
3742 element->obj_field_put(_declaringClass_offset, value); |
3581 } |
3743 } |
3582 |
3744 |
3711 java_lang_System::static_out_offset = java_lang_System::hc_static_out_offset * x; |
3873 java_lang_System::static_out_offset = java_lang_System::hc_static_out_offset * x; |
3712 java_lang_System::static_err_offset = java_lang_System::hc_static_err_offset * x; |
3874 java_lang_System::static_err_offset = java_lang_System::hc_static_err_offset * x; |
3713 java_lang_System::static_security_offset = java_lang_System::hc_static_security_offset * x; |
3875 java_lang_System::static_security_offset = java_lang_System::hc_static_security_offset * x; |
3714 |
3876 |
3715 // java_lang_StackTraceElement |
3877 // java_lang_StackTraceElement |
|
3878 java_lang_StackTraceElement::moduleName_offset = java_lang_StackTraceElement::hc_moduleName_offset * x + header; |
|
3879 java_lang_StackTraceElement::moduleVersion_offset = java_lang_StackTraceElement::hc_moduleVersion_offset * x + header; |
3716 java_lang_StackTraceElement::declaringClass_offset = java_lang_StackTraceElement::hc_declaringClass_offset * x + header; |
3880 java_lang_StackTraceElement::declaringClass_offset = java_lang_StackTraceElement::hc_declaringClass_offset * x + header; |
3717 java_lang_StackTraceElement::methodName_offset = java_lang_StackTraceElement::hc_methodName_offset * x + header; |
3881 java_lang_StackTraceElement::methodName_offset = java_lang_StackTraceElement::hc_methodName_offset * x + header; |
3718 java_lang_StackTraceElement::fileName_offset = java_lang_StackTraceElement::hc_fileName_offset * x + header; |
3882 java_lang_StackTraceElement::fileName_offset = java_lang_StackTraceElement::hc_fileName_offset * x + header; |
3719 java_lang_StackTraceElement::lineNumber_offset = java_lang_StackTraceElement::hc_lineNumber_offset * x + header; |
3883 java_lang_StackTraceElement::lineNumber_offset = java_lang_StackTraceElement::hc_lineNumber_offset * x + header; |
3720 java_lang_AssertionStatusDirectives::classes_offset = java_lang_AssertionStatusDirectives::hc_classes_offset * x + header; |
3884 java_lang_AssertionStatusDirectives::classes_offset = java_lang_AssertionStatusDirectives::hc_classes_offset * x + header; |
3750 java_lang_reflect_Field::compute_offsets(); |
3914 java_lang_reflect_Field::compute_offsets(); |
3751 java_nio_Buffer::compute_offsets(); |
3915 java_nio_Buffer::compute_offsets(); |
3752 sun_reflect_ConstantPool::compute_offsets(); |
3916 sun_reflect_ConstantPool::compute_offsets(); |
3753 sun_reflect_UnsafeStaticFieldAccessorImpl::compute_offsets(); |
3917 sun_reflect_UnsafeStaticFieldAccessorImpl::compute_offsets(); |
3754 java_lang_reflect_Parameter::compute_offsets(); |
3918 java_lang_reflect_Parameter::compute_offsets(); |
|
3919 java_lang_reflect_Module::compute_offsets(); |
3755 java_lang_StackFrameInfo::compute_offsets(); |
3920 java_lang_StackFrameInfo::compute_offsets(); |
3756 java_lang_LiveStackFrameInfo::compute_offsets(); |
3921 java_lang_LiveStackFrameInfo::compute_offsets(); |
3757 |
3922 |
3758 // generated interpreter code wants to know about the offsets we just computed: |
3923 // generated interpreter code wants to know about the offsets we just computed: |
3759 AbstractAssembler::update_delayed_values(); |
3924 AbstractAssembler::update_delayed_values(); |
3897 CHECK_OFFSET("java/lang/Integer", java_lang_boxing_object, value, "I"); |
4062 CHECK_OFFSET("java/lang/Integer", java_lang_boxing_object, value, "I"); |
3898 CHECK_LONG_OFFSET("java/lang/Long", java_lang_boxing_object, value, "J"); |
4063 CHECK_LONG_OFFSET("java/lang/Long", java_lang_boxing_object, value, "J"); |
3899 |
4064 |
3900 // java.lang.ClassLoader |
4065 // java.lang.ClassLoader |
3901 |
4066 |
3902 CHECK_OFFSET("java/lang/ClassLoader", java_lang_ClassLoader, parent, "Ljava/lang/ClassLoader;"); |
4067 CHECK_OFFSET("java/lang/ClassLoader", java_lang_ClassLoader, parent, "Ljava/lang/ClassLoader;"); |
3903 |
4068 |
3904 // java.lang.System |
4069 // java.lang.System |
3905 |
4070 |
3906 CHECK_STATIC_OFFSET("java/lang/System", java_lang_System, in, "Ljava/io/InputStream;"); |
4071 CHECK_STATIC_OFFSET("java/lang/System", java_lang_System, in, "Ljava/io/InputStream;"); |
3907 CHECK_STATIC_OFFSET("java/lang/System", java_lang_System, out, "Ljava/io/PrintStream;"); |
4072 CHECK_STATIC_OFFSET("java/lang/System", java_lang_System, out, "Ljava/io/PrintStream;"); |