diff options
Diffstat (limited to 'libjava/java')
| -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 2621281273f..f2beaac97f6 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 29b42b63cf1..bddb370f1e7 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 c9ed4be0b3f..350439e0c3d 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 604f8ecb428..f995ec89cf4 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 d55b7a54c3a..9d52c92c7c5 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;  } | 

