Skip to content

Commit 8e0789f

Browse files
committed
wip: backport 8261449
1 parent 5989ee3 commit 8e0789f

2 files changed

Lines changed: 7 additions & 8 deletions

File tree

src/hotspot/share/prims/jvm.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3144,10 +3144,14 @@ JVM_ENTRY(jobject, JVM_LatestUserDefinedLoader(JNIEnv *env))
31443144
for (vframeStream vfst(thread); !vfst.at_end(); vfst.next()) {
31453145
#if HOTSPOT_TARGET_CLASSLIB == 8
31463146
// UseNewReflection
3147-
vfst.skip_reflection_related_frames(); // Only needed for 1.4 reflection
3148-
oop loader = vfst.method()->method_holder()->class_loader();
3147+
InstanceKlass* ik = vfst.method()->method_holder();
3148+
oop loader = ik->class_loader();
3149+
//vfst.skip_reflection_related_frames(); // Only needed for 1.4 reflection
31493150
if (loader != nullptr && !SystemDictionary::is_ext_class_loader(Handle(THREAD, loader))) {
3150-
return JNIHandles::make_local(THREAD, loader);
3151+
if (!ik->is_subclass_of(vmClasses::reflect_MethodAccessorImpl_klass()) &&
3152+
!ik->is_subclass_of(vmClasses::reflect_ConstructorAccessorImpl_klass())) {
3153+
return JNIHandles::make_local(THREAD, loader);
3154+
}
31513155
}
31523156
#else
31533157
InstanceKlass* ik = vfst.method()->method_holder();

src/hotspot/share/runtime/vframe.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -564,11 +564,6 @@ void vframeStreamCommon::security_next() {
564564

565565
#if HOTSPOT_TARGET_CLASSLIB == 8
566566
void vframeStreamCommon::skip_reflection_related_frames() {
567-
while (!at_end() &&
568-
(method()->method_holder()->is_subclass_of(vmClasses::reflect_MethodAccessorImpl_klass()) ||
569-
method()->method_holder()->is_subclass_of(vmClasses::reflect_ConstructorAccessorImpl_klass()))) {
570-
next();
571-
}
572567
}
573568
#endif
574569

0 commit comments

Comments
 (0)