--- old/src/hotspot/share/classfile/javaClasses.hpp 2018-09-28 11:53:04.000000000 -0700 +++ new/src/hotspot/share/classfile/javaClasses.hpp 2018-09-28 11:53:04.000000000 -0700 @@ -792,12 +792,15 @@ friend class JavaClasses; }; +#define CONSTANTPOOL_INJECTED_FIELDS(macro) \ + macro(reflect_ConstantPool, constantPoolOop, object_signature, false) + // Interface to jdk.internal.reflect.ConstantPool objects class reflect_ConstantPool { private: // Note that to reduce dependencies on the JDK we compute these // offsets at run-time. - static int _oop_offset; + static int _constantPoolOop_offset; static void compute_offsets(); @@ -805,12 +808,11 @@ static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; // Allocation - static Handle create(TRAPS); + static Handle create_from_pool(ConstantPool* value, TRAPS); // Accessors - static void set_cp(oop reflect, ConstantPool* value); static int oop_offset() { - return _oop_offset; + return _constantPoolOop_offset; } static ConstantPool* get_cp(oop reflect); @@ -1507,6 +1509,7 @@ #define ALL_INJECTED_FIELDS(macro) \ CLASS_INJECTED_FIELDS(macro) \ + CONSTANTPOOL_INJECTED_FIELDS(macro) \ CLASSLOADER_INJECTED_FIELDS(macro) \ RESOLVEDMETHOD_INJECTED_FIELDS(macro) \ MEMBERNAME_INJECTED_FIELDS(macro) \