diff -r 5d42601232b1 -r 16053580a684 hotspot/src/share/vm/classfile/javaClasses.cpp --- a/hotspot/src/share/vm/classfile/javaClasses.cpp Fri Oct 23 14:33:19 2015 +0300 +++ b/hotspot/src/share/vm/classfile/javaClasses.cpp Mon Oct 26 13:11:36 2015 -0400 @@ -114,17 +114,17 @@ // Helpful routine for computing field offsets at run time rather than hardcoding them static void compute_offset(int &dest_offset, - Klass* klass_oop, Symbol* name_symbol, Symbol* signature_symbol, + Klass* klass, Symbol* name_symbol, Symbol* signature_symbol, bool is_static = false, bool allow_super = false) { fieldDescriptor fd; - InstanceKlass* ik = InstanceKlass::cast(klass_oop); + InstanceKlass* ik = InstanceKlass::cast(klass); if (!find_field(ik, name_symbol, signature_symbol, &fd, is_static, allow_super)) { ResourceMark rm; tty->print_cr("Invalid layout of %s at %s", ik->external_name(), name_symbol->as_C_string()); #ifndef PRODUCT - klass_oop->print(); + ik->print(); tty->print_cr("all fields:"); - for (AllFieldStream fs(InstanceKlass::cast(klass_oop)); !fs.done(); fs.next()) { + for (AllFieldStream fs(ik); !fs.done(); fs.next()) { tty->print_cr(" name: %s, sig: %s, flags: %08x", fs.name()->as_C_string(), fs.signature()->as_C_string(), fs.access_flags().as_int()); } #endif //PRODUCT @@ -136,10 +136,10 @@ // Same as above but for "optional" offsets that might not be present in certain JDK versions static void compute_optional_offset(int& dest_offset, - Klass* klass_oop, Symbol* name_symbol, Symbol* signature_symbol, + Klass* klass, Symbol* name_symbol, Symbol* signature_symbol, bool allow_super = false) { fieldDescriptor fd; - InstanceKlass* ik = InstanceKlass::cast(klass_oop); + InstanceKlass* ik = InstanceKlass::cast(klass); if (find_field(ik, name_symbol, signature_symbol, &fd, allow_super)) { dest_offset = fd.offset(); } @@ -174,7 +174,7 @@ // Create the String object first, so there's a chance that the String // and the char array it points to end up in the same cache line. oop obj; - obj = InstanceKlass::cast(SystemDictionary::String_klass())->allocate_instance(CHECK_NH); + obj = SystemDictionary::String_klass()->allocate_instance(CHECK_NH); // Create the char array. The String object must be handlized here // because GC can happen as a result of the allocation attempt. @@ -1236,7 +1236,7 @@ } oop java_lang_Throwable::unassigned_stacktrace() { - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Throwable_klass()); + InstanceKlass* ik = SystemDictionary::Throwable_klass(); address addr = ik->static_field_addr(static_unassigned_stacktrace_offset); if (UseCompressedOops) { return oopDesc::load_decode_heap_oop((narrowOop *)addr); @@ -1293,7 +1293,7 @@ ResourceMark rm; Klass* k = throwable->klass(); assert(k != NULL, "just checking"); - st->print("%s", InstanceKlass::cast(k)->external_name()); + st->print("%s", k->external_name()); oop msg = message(throwable); if (msg != NULL) { st->print(": %s", java_lang_String::as_utf8_string(msg)); @@ -1305,7 +1305,7 @@ ResourceMark rm; Klass* k = throwable->klass(); assert(k != NULL, "just checking"); - st->print("%s", InstanceKlass::cast(k)->external_name()); + st->print("%s", k->external_name()); oop msg = message(throwable); if (msg != NULL) { st->print(": %s", java_lang_String::as_utf8_string(msg)); @@ -2663,13 +2663,13 @@ // Support for java_lang_ref_Reference HeapWord *java_lang_ref_Reference::pending_list_lock_addr() { - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Reference_klass()); + InstanceKlass* ik = SystemDictionary::Reference_klass(); address addr = ik->static_field_addr(static_lock_offset); return (HeapWord*) addr; } oop java_lang_ref_Reference::pending_list_lock() { - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Reference_klass()); + InstanceKlass* ik = SystemDictionary::Reference_klass(); address addr = ik->static_field_addr(static_lock_offset); if (UseCompressedOops) { return oopDesc::load_decode_heap_oop((narrowOop *)addr); @@ -2679,7 +2679,7 @@ } HeapWord *java_lang_ref_Reference::pending_list_addr() { - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::Reference_klass()); + InstanceKlass* ik = SystemDictionary::Reference_klass(); address addr = ik->static_field_addr(static_pending_offset); // XXX This might not be HeapWord aligned, almost rather be char *. return (HeapWord*)addr; @@ -2702,13 +2702,13 @@ } jlong java_lang_ref_SoftReference::clock() { - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass()); + InstanceKlass* ik = SystemDictionary::SoftReference_klass(); jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset); return *offset; } void java_lang_ref_SoftReference::set_clock(jlong value) { - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass()); + InstanceKlass* ik = SystemDictionary::SoftReference_klass(); jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset); *offset = value; } @@ -3033,7 +3033,7 @@ void java_security_AccessControlContext::compute_offsets() { assert(_isPrivileged_offset == 0, "offsets should be initialized only once"); fieldDescriptor fd; - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::AccessControlContext_klass()); + InstanceKlass* ik = SystemDictionary::AccessControlContext_klass(); if (!ik->find_local_field(vmSymbols::context_name(), vmSymbols::protectiondomain_signature(), &fd)) { fatal("Invalid layout of java.security.AccessControlContext"); @@ -3066,9 +3066,9 @@ oop java_security_AccessControlContext::create(objArrayHandle context, bool isPrivileged, Handle privileged_context, TRAPS) { assert(_isPrivileged_offset != 0, "offsets should have been initialized"); // Ensure klass is initialized - InstanceKlass::cast(SystemDictionary::AccessControlContext_klass())->initialize(CHECK_0); + SystemDictionary::AccessControlContext_klass()->initialize(CHECK_0); // Allocate result - oop result = InstanceKlass::cast(SystemDictionary::AccessControlContext_klass())->allocate_instance(CHECK_0); + oop result = SystemDictionary::AccessControlContext_klass()->allocate_instance(CHECK_0); // Fill in values result->obj_field_put(_context_offset, context()); result->obj_field_put(_privilegedContext_offset, privileged_context()); @@ -3190,7 +3190,7 @@ bool java_lang_System::has_security_manager() { - InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::System_klass()); + InstanceKlass* ik = SystemDictionary::System_klass(); address addr = ik->static_field_addr(static_security_offset); if (UseCompressedOops) { return oopDesc::load_decode_heap_oop((narrowOop *)addr) != NULL; @@ -3630,8 +3630,8 @@ #endif // PRODUCT int InjectedField::compute_offset() { - Klass* klass_oop = klass(); - for (AllFieldStream fs(InstanceKlass::cast(klass_oop)); !fs.done(); fs.next()) { + InstanceKlass* ik = InstanceKlass::cast(klass()); + for (AllFieldStream fs(ik); !fs.done(); fs.next()) { if (!may_be_java && !fs.access_flags().is_internal()) { // Only look at injected fields continue; @@ -3641,11 +3641,11 @@ } } ResourceMark rm; - tty->print_cr("Invalid layout of %s at %s/%s%s", InstanceKlass::cast(klass_oop)->external_name(), name()->as_C_string(), signature()->as_C_string(), may_be_java ? " (may_be_java)" : ""); + tty->print_cr("Invalid layout of %s at %s/%s%s", ik->external_name(), name()->as_C_string(), signature()->as_C_string(), may_be_java ? " (may_be_java)" : ""); #ifndef PRODUCT - klass_oop->print(); + ik->print(); tty->print_cr("all fields:"); - for (AllFieldStream fs(InstanceKlass::cast(klass_oop)); !fs.done(); fs.next()) { + for (AllFieldStream fs(ik); !fs.done(); fs.next()) { tty->print_cr(" name: %s, sig: %s, flags: %08x", fs.name()->as_C_string(), fs.signature()->as_C_string(), fs.access_flags().as_int()); } #endif //PRODUCT