38 |
|
|
39 |
package java.lang; |
package java.lang; |
40 |
|
|
|
import gnu.classpath.VMStackWalker; |
|
|
|
|
41 |
import java.io.InputStream; |
import java.io.InputStream; |
42 |
import java.io.Serializable; |
import java.io.Serializable; |
43 |
import java.lang.reflect.Constructor; |
import java.lang.reflect.Constructor; |
157 |
Class result = VMClass.forName (name); |
Class result = VMClass.forName (name); |
158 |
if (result == null) |
if (result == null) |
159 |
result = Class.forName(name, true, |
result = Class.forName(name, true, |
160 |
VMStackWalker.getCallingClassLoader()); |
VMSecurityManager.getClassContext()[1].getClassLoader()); |
161 |
return result; |
return result; |
162 |
} |
} |
163 |
|
|
198 |
SecurityManager sm = SecurityManager.current; |
SecurityManager sm = SecurityManager.current; |
199 |
if (sm != null) |
if (sm != null) |
200 |
{ |
{ |
201 |
// Get the calling classloader |
// Get the calling class and classloader |
202 |
ClassLoader cl = VMStackWalker.getCallingClassLoader(); |
Class c = VMSecurityManager.getClassContext()[1]; |
203 |
|
ClassLoader cl = c.getClassLoader(); |
204 |
if (cl != null) |
if (cl != null) |
205 |
sm.checkPermission(new RuntimePermission("getClassLoader")); |
sm.checkPermission(new RuntimePermission("getClassLoader")); |
206 |
} |
} |
278 |
SecurityManager sm = SecurityManager.current; |
SecurityManager sm = SecurityManager.current; |
279 |
if (sm != null) |
if (sm != null) |
280 |
{ |
{ |
281 |
// Get the calling classloader |
// Get the calling class and classloader |
282 |
ClassLoader cl = VMStackWalker.getCallingClassLoader(); |
Class c = VMSecurityManager.getClassContext()[1]; |
283 |
|
ClassLoader cl = VMClass.getClassLoader(c); |
284 |
if (cl != null && !cl.isAncestorOf(loader)) |
if (cl != null && !cl.isAncestorOf(loader)) |
285 |
sm.checkPermission(new RuntimePermission("getClassLoader")); |
sm.checkPermission(new RuntimePermission("getClassLoader")); |
286 |
} |
} |
1132 |
int modifiers = constructor.getModifiers(); |
int modifiers = constructor.getModifiers(); |
1133 |
if (!Modifier.isPublic(modifiers)) |
if (!Modifier.isPublic(modifiers)) |
1134 |
{ |
{ |
1135 |
Class caller = VMStackWalker.getCallingClass(); |
Class caller = VMSecurityManager.getClassContext()[1]; |
1136 |
if (caller != null && |
if (caller != this && |
|
caller != this && |
|
1137 |
(Modifier.isPrivate(modifiers) |
(Modifier.isPrivate(modifiers) |
1138 |
|| getClassLoader() != caller.getClassLoader() |
|| getClassLoader() != caller.getClassLoader() |
1139 |
|| !getPackagePortion(getName()) |
|| !getPackagePortion(getName()) |