diff options
Diffstat (limited to 'libjava/java/lang')
-rw-r--r-- | libjava/java/lang/ClassLoader.java | 4 | ||||
-rw-r--r-- | libjava/java/lang/Package.java | 4 | ||||
-rw-r--r-- | libjava/java/lang/SecurityManager.java | 4 | ||||
-rw-r--r-- | libjava/java/lang/VMSecurityManager.java | 6 | ||||
-rw-r--r-- | libjava/java/lang/natVMSecurityManager.cc | 4 |
5 files changed, 11 insertions, 11 deletions
diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java index 2621281..f2beaac 100644 --- a/libjava/java/lang/ClassLoader.java +++ b/libjava/java/lang/ClassLoader.java @@ -486,7 +486,7 @@ public abstract class ClassLoader SecurityManager sm = System.getSecurityManager(); if (sm != null) { - Class c = VMSecurityManager.getClassContext()[1]; + Class c = VMSecurityManager.getClassContext(ClassLoader.class)[1]; ClassLoader cl = c.getClassLoader(); if (cl != null && ! cl.isAncestorOf(this)) sm.checkPermission(new RuntimePermission("getClassLoader")); @@ -729,7 +729,7 @@ public abstract class ClassLoader SecurityManager sm = System.getSecurityManager(); if (sm != null) { - Class c = VMSecurityManager.getClassContext()[1]; + Class c = VMSecurityManager.getClassContext(ClassLoader.class)[1]; ClassLoader cl = c.getClassLoader(); if (cl != null && cl != systemClassLoader) sm.checkPermission(new RuntimePermission("getClassLoader")); diff --git a/libjava/java/lang/Package.java b/libjava/java/lang/Package.java index 29b42b6..bddb370 100644 --- a/libjava/java/lang/Package.java +++ b/libjava/java/lang/Package.java @@ -273,7 +273,7 @@ public class Package public static Package getPackage(String name) { // Get the caller's classloader - ClassLoader cl = VMSecurityManager.currentClassLoader(); + ClassLoader cl = VMSecurityManager.currentClassLoader(Package.class); return cl != null ? cl.getPackage(name) : VMClassLoader.getPackage(name); } @@ -286,7 +286,7 @@ public class Package public static Package[] getPackages() { // Get the caller's classloader - Class c = VMSecurityManager.getClassContext()[1]; + Class c = VMSecurityManager.getClassContext(Package.class)[1]; ClassLoader cl = c.getClassLoader(); return cl != null ? cl.getPackages() : VMClassLoader.getPackages(); } diff --git a/libjava/java/lang/SecurityManager.java b/libjava/java/lang/SecurityManager.java index c9ed4be..350439e 100644 --- a/libjava/java/lang/SecurityManager.java +++ b/libjava/java/lang/SecurityManager.java @@ -167,7 +167,7 @@ public class SecurityManager */ protected Class[] getClassContext() { - return VMSecurityManager.getClassContext(); + return VMSecurityManager.getClassContext(SecurityManager.class); } /** @@ -189,7 +189,7 @@ public class SecurityManager */ protected ClassLoader currentClassLoader() { - return VMSecurityManager.currentClassLoader(); + return VMSecurityManager.currentClassLoader(SecurityManager.class); } /** diff --git a/libjava/java/lang/VMSecurityManager.java b/libjava/java/lang/VMSecurityManager.java index 604f8ec..f995ec8 100644 --- a/libjava/java/lang/VMSecurityManager.java +++ b/libjava/java/lang/VMSecurityManager.java @@ -43,19 +43,19 @@ class VMSecurityManager ** @return an array containing all the methods on classes ** on the Java execution stack. **/ - static native Class[] getClassContext(); + static native Class[] getClassContext(Class caller); /** Get the current ClassLoader--the one nearest to the ** top of the stack. ** @return the current ClassLoader. **/ - static ClassLoader currentClassLoader() + static ClassLoader currentClassLoader(Class caller) { // The docs above are wrong. See the online docs. // FIXME this implementation is a bit wrong too -- the docs say we // must also consider ancestors of the system class loader. ClassLoader systemClassLoader = VMClassLoader.getSystemClassLoader(); - Class[] classStack = getClassContext (); + Class[] classStack = getClassContext (caller); for (int i = 0; i < classStack.length; i++) { ClassLoader loader = classStack[i].getClassLoader(); diff --git a/libjava/java/lang/natVMSecurityManager.cc b/libjava/java/lang/natVMSecurityManager.cc index d55b7a5..9d52c92 100644 --- a/libjava/java/lang/natVMSecurityManager.cc +++ b/libjava/java/lang/natVMSecurityManager.cc @@ -20,10 +20,10 @@ details. */ #include <java/lang/Class.h> JArray<jclass> * -java::lang::VMSecurityManager::getClassContext () +java::lang::VMSecurityManager::getClassContext (jclass klass) { JArray<jclass> *result = - _Jv_StackTrace::GetClassContext (&SecurityManager::class$); + _Jv_StackTrace::GetClassContext (klass); return result; } |