< 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 >