< prev index next >

src/hotspot/share/classfile/javaClasses.hpp

Print this page
rev 52749 : Bootstrap method consolidation
* clean up and simplify JDK support code for BSM invocation
* simplify JVM bootstrap handshake: use BootstrapCallInfo only
* remove unused JVM paths and data fields
* move bootstrap argument processing from MethodHandleNatives to ConstantPool
* remove ConstantGroup; merge argument access into BootstrapCallInfo
* adjust BSM argument access: remove copyArguments, add argumentRef API
* add metadata-free BSM modes, including symbolic arguments from CP

@@ -790,29 +790,31 @@
     static void set_module_entry(oop module, ModuleEntry* module_entry);
 
   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();
 
  public:
   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);
 
   // Debugging

@@ -1505,10 +1507,11 @@
 #define DECLARE_INJECTED_FIELD_ENUM(klass, name, signature, may_be_java) \
   klass##_##name##_enum,
 
 #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)         \
   CALLSITECONTEXT_INJECTED_FIELDS(macro)    \
   STACKFRAMEINFO_INJECTED_FIELDS(macro)     \
< prev index next >