natVMClassLoader.cc (getSystemClassLoaderInternal): Updated for name change.

* java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal):
	Updated for name change.
	(nativeFindClass): New method.
	(loadClass): Use nativeFindClass.
	* java/lang/natClassLoader.cc (_Jv_FindClass): Use single-argument
	form of loadClass.
	* java/lang/VMClassLoader.java (tried_libraries, lib_control,
	LIB_FULL, LIB_CACHE, LIB_NEVER): New fields from old
	VMClassLoader.
	(initialize): New method.
	(nativeFindClass): Declare.
	* gnu/gcj/runtime/natVMClassLoader.cc: Removed.
	* gnu/gcj/runtime/VMClassLoader.java: Removed.
	* gnu/gcj/runtime/ExtensionClassLoader.java: Renamed from
	VMClassLoader.java.
	(definePackageForNative): Removed.
	(tried_libraries, LIB_CACHE, LIB_FULL, LIB_NEVER, lib_control):
	Moved to VMClassLoader.java.
	* prims.cc (_Jv_CreateJavaVM): Updated for renaming.
	* Makefile.am (gnu/gcj/runtime/ExtensionClassLoader.h): Renamed.
	(ordinary_java_source_files): Added ExtensionClassLoader.java,
	removed VMClassLoader.java.
	(nat_source_files): Removed natVMClassLoader.cc.

From-SVN: r97414
This commit is contained in:
Tom Tromey
2005-04-01 19:19:13 +00:00
committed by Tom Tromey
parent 35913faefb
commit ef87438639
10 changed files with 194 additions and 206 deletions
+36
View File
@@ -51,6 +51,7 @@ import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.StringTokenizer;
import gnu.gcj.runtime.BootClassLoader;
@@ -87,6 +88,17 @@ final class VMClassLoader
// until we've initialized the system, at which point it is created.
static BootClassLoader bootLoader;
// This keeps track of shared libraries we've already tried to load.
private static HashSet tried_libraries;
// Holds one of the LIB_* constants; used to determine how shared
// library loads are done.
private static int lib_control;
private static final int LIB_FULL = 0;
private static final int LIB_CACHE = 1;
private static final int LIB_NEVER = 2;
/**
* Helper to define a class using a string of bytes. This assumes that
* the security checks have already been performed, if necessary.
@@ -298,6 +310,30 @@ final class VMClassLoader
static native void initBootLoader(String libdir);
static void initialize(String libdir)
{
initBootLoader(libdir);
String p
= System.getProperty ("gnu.gcj.runtime.VMClassLoader.library_control",
"");
if ("never".equals(p))
lib_control = LIB_NEVER;
else if ("cache".equals(p))
lib_control = LIB_CACHE;
else if ("full".equals(p))
lib_control = LIB_FULL;
else
lib_control = LIB_CACHE;
tried_libraries = new HashSet();
}
/**
* Possibly load a .so and search it for classes.
*/
static native Class nativeFindClass(String name);
static ClassLoader getSystemClassLoader()
{
// This method is called as the initialization of systemClassLoader,