Mercurial > hg > truffle
comparison src/share/vm/classfile/javaClasses.cpp @ 12010:ca0165daa6ec
7187554: JSR 292: JVMTI PopFrame needs to handle appendix arguments
Summary: Restore the appendix argument after PopFrame() call
Reviewed-by: twisti, coleenp
Contributed-by: serguei.spitsyn@oracle.com
author | sspitsyn |
---|---|
date | Tue, 06 Aug 2013 16:33:59 -0700 |
parents | 3a0774193f71 |
children | 3cce976666d9 63147986a428 |
comparison
equal
deleted
inserted
replaced
11996:22a5aff0df0b | 12010:ca0165daa6ec |
---|---|
2555 InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass()); | 2555 InstanceKlass* ik = InstanceKlass::cast(SystemDictionary::SoftReference_klass()); |
2556 jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset); | 2556 jlong* offset = (jlong*)ik->static_field_addr(static_clock_offset); |
2557 *offset = value; | 2557 *offset = value; |
2558 } | 2558 } |
2559 | 2559 |
2560 // Support for java_lang_invoke_DirectMethodHandle | |
2561 | |
2562 int java_lang_invoke_DirectMethodHandle::_member_offset; | |
2563 | |
2564 oop java_lang_invoke_DirectMethodHandle::member(oop dmh) { | |
2565 oop member_name = NULL; | |
2566 bool is_dmh = dmh->is_oop() && java_lang_invoke_DirectMethodHandle::is_instance(dmh); | |
2567 assert(is_dmh, "a DirectMethodHandle oop is expected"); | |
2568 if (is_dmh) { | |
2569 member_name = dmh->obj_field(member_offset_in_bytes()); | |
2570 } | |
2571 return member_name; | |
2572 } | |
2573 | |
2574 void java_lang_invoke_DirectMethodHandle::compute_offsets() { | |
2575 Klass* klass_oop = SystemDictionary::DirectMethodHandle_klass(); | |
2576 if (klass_oop != NULL && EnableInvokeDynamic) { | |
2577 compute_offset(_member_offset, klass_oop, vmSymbols::member_name(), vmSymbols::java_lang_invoke_MemberName_signature()); | |
2578 } | |
2579 } | |
2560 | 2580 |
2561 // Support for java_lang_invoke_MethodHandle | 2581 // Support for java_lang_invoke_MethodHandle |
2562 | 2582 |
2563 int java_lang_invoke_MethodHandle::_type_offset; | 2583 int java_lang_invoke_MethodHandle::_type_offset; |
2564 int java_lang_invoke_MethodHandle::_form_offset; | 2584 int java_lang_invoke_MethodHandle::_form_offset; |
3203 java_lang_ClassLoader::compute_offsets(); | 3223 java_lang_ClassLoader::compute_offsets(); |
3204 java_lang_Thread::compute_offsets(); | 3224 java_lang_Thread::compute_offsets(); |
3205 java_lang_ThreadGroup::compute_offsets(); | 3225 java_lang_ThreadGroup::compute_offsets(); |
3206 if (EnableInvokeDynamic) { | 3226 if (EnableInvokeDynamic) { |
3207 java_lang_invoke_MethodHandle::compute_offsets(); | 3227 java_lang_invoke_MethodHandle::compute_offsets(); |
3228 java_lang_invoke_DirectMethodHandle::compute_offsets(); | |
3208 java_lang_invoke_MemberName::compute_offsets(); | 3229 java_lang_invoke_MemberName::compute_offsets(); |
3209 java_lang_invoke_LambdaForm::compute_offsets(); | 3230 java_lang_invoke_LambdaForm::compute_offsets(); |
3210 java_lang_invoke_MethodType::compute_offsets(); | 3231 java_lang_invoke_MethodType::compute_offsets(); |
3211 java_lang_invoke_CallSite::compute_offsets(); | 3232 java_lang_invoke_CallSite::compute_offsets(); |
3212 } | 3233 } |