mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
7187554: JSR 292: JVMTI PopFrame needs to handle appendix arguments
Restore the appendix argument after PopFrame() call Reviewed-by: twisti, coleenp
This commit is contained in:
parent
68198af05c
commit
4974d1aef2
9 changed files with 143 additions and 0 deletions
|
@ -2557,6 +2557,26 @@ void java_lang_ref_SoftReference::set_clock(jlong value) {
|
|||
*offset = value;
|
||||
}
|
||||
|
||||
// Support for java_lang_invoke_DirectMethodHandle
|
||||
|
||||
int java_lang_invoke_DirectMethodHandle::_member_offset;
|
||||
|
||||
oop java_lang_invoke_DirectMethodHandle::member(oop dmh) {
|
||||
oop member_name = NULL;
|
||||
bool is_dmh = dmh->is_oop() && java_lang_invoke_DirectMethodHandle::is_instance(dmh);
|
||||
assert(is_dmh, "a DirectMethodHandle oop is expected");
|
||||
if (is_dmh) {
|
||||
member_name = dmh->obj_field(member_offset_in_bytes());
|
||||
}
|
||||
return member_name;
|
||||
}
|
||||
|
||||
void java_lang_invoke_DirectMethodHandle::compute_offsets() {
|
||||
Klass* klass_oop = SystemDictionary::DirectMethodHandle_klass();
|
||||
if (klass_oop != NULL && EnableInvokeDynamic) {
|
||||
compute_offset(_member_offset, klass_oop, vmSymbols::member_name(), vmSymbols::java_lang_invoke_MemberName_signature());
|
||||
}
|
||||
}
|
||||
|
||||
// Support for java_lang_invoke_MethodHandle
|
||||
|
||||
|
@ -3205,6 +3225,7 @@ void JavaClasses::compute_offsets() {
|
|||
java_lang_ThreadGroup::compute_offsets();
|
||||
if (EnableInvokeDynamic) {
|
||||
java_lang_invoke_MethodHandle::compute_offsets();
|
||||
java_lang_invoke_DirectMethodHandle::compute_offsets();
|
||||
java_lang_invoke_MemberName::compute_offsets();
|
||||
java_lang_invoke_LambdaForm::compute_offsets();
|
||||
java_lang_invoke_MethodType::compute_offsets();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue