< 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,818 ****
static void set_module_entry(oop module, ModuleEntry* module_entry);
friend class JavaClasses;
};
// 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 void compute_offsets();
public:
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
// Allocation
! static Handle create(TRAPS);
// Accessors
- static void set_cp(oop reflect, ConstantPool* value);
static int oop_offset() {
! return _oop_offset;
}
static ConstantPool* get_cp(oop reflect);
// Debugging
--- 790,820 ----
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 _constantPoolOop_offset;
static void compute_offsets();
public:
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
// Allocation
! static Handle create_from_pool(ConstantPool* value, TRAPS);
// Accessors
static int oop_offset() {
! return _constantPoolOop_offset;
}
static ConstantPool* get_cp(oop reflect);
// Debugging
*** 1505,1514 ****
--- 1507,1517 ----
#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 >