diff options
Diffstat (limited to 'java/lang/ClassLoader.java')
| -rw-r--r-- | java/lang/ClassLoader.java | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/java/lang/ClassLoader.java b/java/lang/ClassLoader.java index 943bab5ad..a5093136d 100644 --- a/java/lang/ClassLoader.java +++ b/java/lang/ClassLoader.java @@ -39,6 +39,7 @@ exception statement from your version. */ package java.lang; import gnu.classpath.SystemProperties; +import gnu.classpath.VMStackWalker; import gnu.java.util.DoubleEnumeration; import gnu.java.util.EmptyEnumeration; @@ -520,8 +521,7 @@ public abstract class ClassLoader SecurityManager sm = SecurityManager.current; if (sm != null) { - Class c = VMSecurityManager.getClassContext()[1]; - ClassLoader cl = c.getClassLoader(); + ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && ! cl.isAncestorOf(this)) sm.checkPermission(new RuntimePermission("getClassLoader")); } @@ -763,8 +763,7 @@ public abstract class ClassLoader SecurityManager sm = SecurityManager.current; if (sm != null) { - Class c = VMSecurityManager.getClassContext()[1]; - ClassLoader cl = c.getClassLoader(); + ClassLoader cl = VMStackWalker.getCallingClassLoader(); if (cl != null && cl != StaticData.systemClassLoader) sm.checkPermission(new RuntimePermission("getClassLoader")); } |
