--- old/src/share/vm/classfile/javaClasses.hpp 2014-11-07 14:34:12.049608632 -0500 +++ new/src/share/vm/classfile/javaClasses.hpp 2014-11-07 14:34:11.957605360 -0500 @@ -243,6 +243,7 @@ static int _component_mirror_offset; static bool offsets_computed; + static int _classData_offset; static int classRedefinedCount_offset; static GrowableArray* _fixup_mirror_list; @@ -285,6 +286,9 @@ // compiler support for class operations static int klass_offset_in_bytes() { return _klass_offset; } static int array_klass_offset_in_bytes() { return _array_klass_offset; } + + static oop classData(oop obj); + // Support for classRedefinedCount field static int classRedefinedCount(oop the_class_mirror); static void set_classRedefinedCount(oop the_class_mirror, int value); @@ -312,7 +316,22 @@ // Debugging friend class JavaClasses; friend class InstanceKlass; // verification code accesses offsets - friend class ClassFileParser; // access to number_of_fake_fields + friend class ClassFileParser; // access to number_of_fake_fields_sequenceNumber_offset +}; + +/** + * java.lang.Class$ClassData + */ +class java_lang_invoke_MemberName_ClassData : AllStatic { + friend class JavaClasses; + + private: + static int _publishedToVM_offset; + static void compute_offsets(); + + public: + static bool is_instance(oop obj); + static oop publishedToVM(oop obj); }; // Interface to java.lang.Thread objects @@ -1077,6 +1096,7 @@ static int _name_offset; static int _type_offset; static int _flags_offset; + static int _next_offset; static int _vmtarget_offset; static int _vmloader_offset; static int _vmindex_offset; @@ -1097,6 +1117,8 @@ static int flags(oop mname); static void set_flags(oop mname, int flags); + static oop next(oop mname); + static Metadata* vmtarget(oop mname); static void set_vmtarget(oop mname, Metadata* target); #if INCLUDE_JVMTI