mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8234923: Missed call_site_target nmethod dependency for non-fully initialized ConstantCallSite instance
Reviewed-by: jrose
This commit is contained in:
parent
c7bc0f7a12
commit
a6daef527e
9 changed files with 73 additions and 9 deletions
|
@ -66,6 +66,7 @@
|
|||
f(java_lang_invoke_LambdaForm) \
|
||||
f(java_lang_invoke_MethodType) \
|
||||
f(java_lang_invoke_CallSite) \
|
||||
f(java_lang_invoke_ConstantCallSite) \
|
||||
f(java_lang_invoke_MethodHandleNatives_CallSiteContext) \
|
||||
f(java_security_AccessControlContext) \
|
||||
f(java_lang_reflect_AccessibleObject) \
|
||||
|
@ -1226,6 +1227,28 @@ public:
|
|||
static int target_offset_in_bytes() { return _target_offset; }
|
||||
};
|
||||
|
||||
// Interface to java.lang.invoke.ConstantCallSite objects
|
||||
|
||||
class java_lang_invoke_ConstantCallSite: AllStatic {
|
||||
friend class JavaClasses;
|
||||
|
||||
private:
|
||||
static int _is_frozen_offset;
|
||||
|
||||
static void compute_offsets();
|
||||
|
||||
public:
|
||||
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
|
||||
// Accessors
|
||||
static jboolean is_frozen(oop site);
|
||||
|
||||
// Testers
|
||||
static bool is_subclass(Klass* klass) {
|
||||
return klass->is_subclass_of(SystemDictionary::ConstantCallSite_klass());
|
||||
}
|
||||
static bool is_instance(oop obj);
|
||||
};
|
||||
|
||||
// Interface to java.lang.invoke.MethodHandleNatives$CallSiteContext objects
|
||||
|
||||
#define CALLSITECONTEXT_INJECTED_FIELDS(macro) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue