/[classpath]/classpath/java/lang/Class.java
ViewVC logotype

Diff of /classpath/java/lang/Class.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.30 by archie172, Tue Jan 4 19:18:29 2005 UTC revision 1.31 by archie172, Fri Jan 7 15:08:23 2005 UTC
# Line 38  exception statement from your version. * Line 38  exception statement from your version. *
38    
39  package java.lang;  package java.lang;
40    
41    import gnu.classpath.VMStackWalker;
42    
43  import java.io.InputStream;  import java.io.InputStream;
44  import java.io.Serializable;  import java.io.Serializable;
45  import java.lang.reflect.Constructor;  import java.lang.reflect.Constructor;
# Line 157  public final class Class implements Seri Line 159  public final class Class implements Seri
159      Class result = VMClass.forName (name);      Class result = VMClass.forName (name);
160      if (result == null)      if (result == null)
161        result = Class.forName(name, true,        result = Class.forName(name, true,
162                               VMSecurityManager.getClassContext()[1].getClassLoader());          VMStackWalker.getCallingClassLoader());
163      return result;      return result;
164    }    }
165    
# Line 198  public final class Class implements Seri Line 200  public final class Class implements Seri
200          SecurityManager sm = SecurityManager.current;          SecurityManager sm = SecurityManager.current;
201          if (sm != null)          if (sm != null)
202            {            {
203              // Get the calling class and classloader              // Get the calling classloader
204              Class c = VMSecurityManager.getClassContext()[1];              ClassLoader cl = VMStackWalker.getCallingClassLoader();
             ClassLoader cl = c.getClassLoader();  
205              if (cl != null)              if (cl != null)
206                sm.checkPermission(new RuntimePermission("getClassLoader"));                sm.checkPermission(new RuntimePermission("getClassLoader"));
207            }            }
# Line 278  public final class Class implements Seri Line 279  public final class Class implements Seri
279      SecurityManager sm = SecurityManager.current;      SecurityManager sm = SecurityManager.current;
280      if (sm != null)      if (sm != null)
281        {        {
282          // Get the calling class and classloader          // Get the calling classloader
283          Class c = VMSecurityManager.getClassContext()[1];          ClassLoader cl = VMStackWalker.getCallingClassLoader();
         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        }        }
# Line 1132  public final class Class implements Seri Line 1132  public final class Class implements Seri
1132      int modifiers = constructor.getModifiers();      int modifiers = constructor.getModifiers();
1133      if (!Modifier.isPublic(modifiers))      if (!Modifier.isPublic(modifiers))
1134        {        {
1135          Class caller = VMSecurityManager.getClassContext()[1];          Class caller = VMStackWalker.getCallingClass();
1136          if (caller != this &&          if (caller != null &&
1137                caller != this &&
1138              (Modifier.isPrivate(modifiers)              (Modifier.isPrivate(modifiers)
1139               || getClassLoader() != caller.getClassLoader()               || getClassLoader() != caller.getClassLoader()
1140               || !getPackagePortion(getName())               || !getPackagePortion(getName())

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26