diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-03-13 16:43:54 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-03-13 16:43:54 +0000 |
| commit | f55d473b7373a47721a2200ae73b9fbe7fb7b32e (patch) | |
| tree | 3e00c86cfe961bb8b754069406dbd928045c1a31 /libjava/java/lang/ClassLoader.java | |
| parent | 3992c686b6fdc7e7fdebb960dd21b52fe510a7c2 (diff) | |
| download | ppe42-gcc-f55d473b7373a47721a2200ae73b9fbe7fb7b32e.tar.gz ppe42-gcc-f55d473b7373a47721a2200ae73b9fbe7fb7b32e.zip | |
* java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
Check loading constraints.
(_Jv_CheckOrCreateLoadingConstraint): New function.
* java/lang/ClassLoader.java (loadingConstraints): New field.
* link.cc (_Jv_Linker::find_field): Use
_Jv_CheckOrCreateLoadingConstraint.
(_Jv_Linker::check_loading_constraints): New function.
(_Jv_Linker::resolve_method_entry): Use
check_loading_constraints.
(_Jv_Linker::append_partial_itable): Likewise.
(_Jv_Linker::layout_vtable_methods): Likewise.
* include/jvm.h (_Jv_Linker::check_loading_constraints): Declare.
(_Jv_CheckOrCreateLoadingConstraint): Declare.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133172 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/ClassLoader.java')
| -rw-r--r-- | libjava/java/lang/ClassLoader.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java index 4682dbbf010..e0463ac2af6 100644 --- a/libjava/java/lang/ClassLoader.java +++ b/libjava/java/lang/ClassLoader.java @@ -1,5 +1,5 @@ /* ClassLoader.java -- responsible for loading classes into the VM - Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,6 +45,7 @@ import gnu.java.util.EmptyEnumeration; import java.io.IOException; import java.io.InputStream; +import java.lang.ref.WeakReference; import java.net.URL; import java.nio.ByteBuffer; import java.security.CodeSource; @@ -130,6 +131,15 @@ public abstract class ClassLoader final HashMap loadedClasses = new HashMap(); /** + * Loading constraints registered with this classloader. This maps + * a class name to a weak reference to a class. When the reference + * is non-null, it means that a reference to the name must resolve + * to the indicated class. + */ + final HashMap<String, WeakReference<Class>> loadingConstraints + = new HashMap<String, WeakReference<Class>>(); + + /** * All packages defined by this classloader. It is not private in order to * allow native code (and trusted subclasses) access to this field. */ |

