src/share/vm/classfile/systemDictionary.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6817525 Cdiff src/share/vm/classfile/systemDictionary.cpp

src/share/vm/classfile/systemDictionary.cpp

Print this page

        

*** 1015,1025 **** SystemDictionary_lock->notify_all(); } } if (host_klass.not_null() && k.not_null()) { ! assert(AnonymousClasses, ""); // If it's anonymous, initialize it now, since nobody else will. k->set_host_klass(host_klass()); { MutexLocker mu_r(Compile_lock, THREAD); --- 1015,1025 ---- SystemDictionary_lock->notify_all(); } } if (host_klass.not_null() && k.not_null()) { ! assert(EnableInvokeDynamic, ""); // If it's anonymous, initialize it now, since nobody else will. k->set_host_klass(host_klass()); { MutexLocker mu_r(Compile_lock, THREAD);
*** 1938,1948 **** try_load = false; #endif //KERNEL } Symbol* backup_symbol = NULL; // symbol to try if the current symbol fails if (init_opt == SystemDictionary::Pre_JSR292) { ! if (!EnableMethodHandles) try_load = false; // do not bother to load such classes if (AllowTransitionalJSR292) { backup_symbol = find_backup_class_name(symbol); if (try_load && PreferTransitionalJSR292) { while (backup_symbol != NULL) { (*klassp) = resolve_or_null(backup_symbol, CHECK_0); // try backup early --- 1938,1948 ---- try_load = false; #endif //KERNEL } Symbol* backup_symbol = NULL; // symbol to try if the current symbol fails if (init_opt == SystemDictionary::Pre_JSR292) { ! if (!EnableInvokeDynamic) try_load = false; // do not bother to load such classes if (AllowTransitionalJSR292) { backup_symbol = find_backup_class_name(symbol); if (try_load && PreferTransitionalJSR292) { while (backup_symbol != NULL) { (*klassp) = resolve_or_null(backup_symbol, CHECK_0); // try backup early
*** 2036,2064 **** instanceKlass::cast(WK_KLASS(SoftReference_klass))->set_reference_type(REF_SOFT); instanceKlass::cast(WK_KLASS(WeakReference_klass))->set_reference_type(REF_WEAK); instanceKlass::cast(WK_KLASS(FinalReference_klass))->set_reference_type(REF_FINAL); instanceKlass::cast(WK_KLASS(PhantomReference_klass))->set_reference_type(REF_PHANTOM); ! WKID meth_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass); ! WKID meth_group_end = WK_KLASS_ENUM_NAME(WrongMethodTypeException_klass); ! initialize_wk_klasses_until(meth_group_start, scan, CHECK); ! if (EnableMethodHandles) { ! initialize_wk_klasses_through(meth_group_end, scan, CHECK); ! } ! if (_well_known_klasses[meth_group_start] == NULL) { ! // Skip the rest of the method handle classes, if MethodHandle is not loaded. ! scan = WKID(meth_group_end+1); ! } ! WKID indy_group_start = WK_KLASS_ENUM_NAME(Linkage_klass); ! WKID indy_group_end = WK_KLASS_ENUM_NAME(CallSite_klass); ! initialize_wk_klasses_until(indy_group_start, scan, CHECK); if (EnableInvokeDynamic) { ! initialize_wk_klasses_through(indy_group_end, scan, CHECK); ! } ! if (_well_known_klasses[indy_group_start] == NULL) { ! // Skip the rest of the dynamic typing classes, if Linkage is not loaded. ! scan = WKID(indy_group_end+1); } initialize_wk_klasses_until(WKID_LIMIT, scan, CHECK); _box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass); --- 2036,2054 ---- instanceKlass::cast(WK_KLASS(SoftReference_klass))->set_reference_type(REF_SOFT); instanceKlass::cast(WK_KLASS(WeakReference_klass))->set_reference_type(REF_WEAK); instanceKlass::cast(WK_KLASS(FinalReference_klass))->set_reference_type(REF_FINAL); instanceKlass::cast(WK_KLASS(PhantomReference_klass))->set_reference_type(REF_PHANTOM); ! // JSR 292 classes ! WKID jsr292_group_start = WK_KLASS_ENUM_NAME(MethodHandle_klass); ! WKID jsr292_group_end = WK_KLASS_ENUM_NAME(CallSite_klass); ! initialize_wk_klasses_until(jsr292_group_start, scan, CHECK); if (EnableInvokeDynamic) { ! initialize_wk_klasses_through(jsr292_group_end, scan, CHECK); ! } else { ! // Skip the JSR 292 classes, if not enabled. ! scan = WKID(jsr292_group_end + 1); } initialize_wk_klasses_until(WKID_LIMIT, scan, CHECK); _box_klasses[T_BOOLEAN] = WK_KLASS(Boolean_klass);
*** 2405,2415 **** methodOop SystemDictionary::find_method_handle_invoke(Symbol* name, Symbol* signature, KlassHandle accessing_klass, TRAPS) { ! if (!EnableMethodHandles) return NULL; vmSymbols::SID name_id = vmSymbols::find_sid(name); assert(name_id != vmSymbols::NO_SID, "must be a known name"); unsigned int hash = invoke_method_table()->compute_hash(signature, name_id); int index = invoke_method_table()->hash_to_index(hash); SymbolPropertyEntry* spe = invoke_method_table()->find_entry(index, hash, signature, name_id); --- 2395,2405 ---- methodOop SystemDictionary::find_method_handle_invoke(Symbol* name, Symbol* signature, KlassHandle accessing_klass, TRAPS) { ! if (!EnableInvokeDynamic) return NULL; vmSymbols::SID name_id = vmSymbols::find_sid(name); assert(name_id != vmSymbols::NO_SID, "must be a known name"); unsigned int hash = invoke_method_table()->compute_hash(signature, name_id); int index = invoke_method_table()->hash_to_index(hash); SymbolPropertyEntry* spe = invoke_method_table()->find_entry(index, hash, signature, name_id);
src/share/vm/classfile/systemDictionary.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File