25 #ifndef REFERENCES_HPP_
26 #define REFERENCES_HPP_ 1
43 #define CLASSREF_PSEUDO_VFTBL (reinterpret_cast<void *>(1))
78 operator bool()
const {
return fd; }
91 : name(name), descriptor(descriptor), parseddesc(parseddesc) {
128 : kind(kind), fmi(fmi),
handle(NULL) {}
194 #define CLASSREF_OR_CLASSINFO_NAME(value) \
195 ((value).is_classref() ? (value).ref->name : (value).cls->name)
198 #define METHODREF_CLASSNAME(fmiref) \
199 ((fmiref)->is_resolved() ? (fmiref)->p.method->clazz->name \
200 : (fmiref)->p.classref->name)
203 #define FIELDREF_CLASSNAME(fmiref) \
204 ((fmiref)->is_resolved() ? (fmiref)->p.field->clazz->name \
205 : (fmiref)->p.classref->name)
207 #endif // REFERENCES_HPP_
A MethodType constant stored in the constant pool.
constant_FMIref *const fmi
constant_MethodHandle(MethodHandleKind kind, constant_FMIref *fmi)
An invokedynamic call site.
union constant_FMIref::@26 p
java_object_t * handle
resolved java.lang.invoke.MethodHandle object
constant_InvokeDynamic(uint16_t bsm, Utf8String name, Utf8String desc, methoddesc *parseddesc)
JNIEnv jclass jobject const char * name
const MethodHandleKind kind
const uint16_t bootstrap_method_index
const methoddesc *const parseddesc
java_object_t * type
resolved java.lang.invoke.MethodType object
constant_classref(classinfo *referer, Utf8String name)
constant_MethodType(Utf8String desc, methoddesc *parseddesc)
const Utf8String descriptor
constant_FMIref(constant_classref *ref, Utf8String name, Utf8String descriptor, parseddesc_t parseddesc)
Fieldref, Methodref and InterfaceMethodref.
java_object_t * handle
resolved java.lang.invoke.MethodHandle object for this CallSite
const Utf8String descriptor
const Utf8String descriptor
const methoddesc *const parseddesc
constant_classref * classref
static classref_or_classinfo to_classref_or_classinfo(classinfo *c)
Functions for casting a classref/classinfo to a classref_or_classinfo.
#define CLASSREF_PSEUDO_VFTBL
a value that never occurrs in classinfo.header.vftbl
const parseddesc_t parseddesc
MethodHandleKind
The kinds of methodhandles that can appear in a class file.
bool is_classinfo() const