hotspot/src/share/vm/prims/jvm.cpp
changeset 37870 ed05be00b50d
parent 37479 14a195eaf2c5
child 38303 1d0016127806
equal deleted inserted replaced
37869:e0f538c1694c 37870:ed05be00b50d
  3385   }
  3385   }
  3386 
  3386 
  3387   return (!access.is_private() && InstanceKlass::cast(current_class)->is_same_class_package(field_class));
  3387   return (!access.is_private() && InstanceKlass::cast(current_class)->is_same_class_package(field_class));
  3388 }
  3388 }
  3389 
  3389 
  3390 // Return the first non-null class loader up the execution stack, or null
  3390 // Return the first user-defined class loader up the execution stack, or null
  3391 // if only code from the null class loader is on the stack.
  3391 // if only code from the bootstrap or platform class loader is on the stack.
  3392 
  3392 
  3393 JVM_ENTRY(jobject, JVM_LatestUserDefinedLoader(JNIEnv *env))
  3393 JVM_ENTRY(jobject, JVM_LatestUserDefinedLoader(JNIEnv *env))
  3394   for (vframeStream vfst(thread); !vfst.at_end(); vfst.next()) {
  3394   for (vframeStream vfst(thread); !vfst.at_end(); vfst.next()) {
  3395     vfst.skip_reflection_related_frames(); // Only needed for 1.4 reflection
  3395     vfst.skip_reflection_related_frames(); // Only needed for 1.4 reflection
  3396     oop loader = vfst.method()->method_holder()->class_loader();
  3396     oop loader = vfst.method()->method_holder()->class_loader();
  3397     if (loader != NULL) {
  3397     if (loader != NULL && !SystemDictionary::is_platform_class_loader(loader)) {
  3398       return JNIHandles::make_local(env, loader);
  3398       return JNIHandles::make_local(env, loader);
  3399     }
  3399     }
  3400   }
  3400   }
  3401   return NULL;
  3401   return NULL;
  3402 JVM_END
  3402 JVM_END