VMClassLoader.java (loadClass): Now native.

* java/lang/VMClassLoader.java (loadClass): Now native.
	* java/lang/natClassLoader.cc (loadClass): Implement.
	* prims.cc (_Jv_RunMain): Initialize ClassLoader.

From-SVN: r72038
This commit is contained in:
Tom Tromey 2003-10-02 15:34:28 +00:00 committed by Tom Tromey
parent 2a3bf9aa52
commit d801e245eb
4 changed files with 25 additions and 8 deletions

View file

@ -142,20 +142,14 @@ final class VMClassLoader
/**
* Helper to load a class from the bootstrap class loader.
*
* In libgcj, this does nothing, as the default system loader knows
* how to find classes that have been linked in.
*
* @param name the class name to load
* @param resolve whether to resolve it
* @return the class, loaded by the bootstrap classloader or null
* if the class wasn't found. Returning null is equivalent to throwing
* a ClassNotFoundException (but a possible performance optimization).
*/
static final Class loadClass(String name, boolean resolve)
throws ClassNotFoundException
{
return null;
}
static final native Class loadClass(String name, boolean resolve)
throws ClassNotFoundException;
/**
* Helper to load a resource from the bootstrap class loader.

View file

@ -136,6 +136,17 @@ java::lang::VMClassLoader::getPrimitiveClass (jchar type)
return _Jv_FindClassFromSignature (sig, NULL);
}
jclass
java::lang::VMClassLoader::loadClass(jstring name, jboolean resolve)
{
_Jv_Utf8Const *utf = _Jv_makeUtf8Const (name);
// FIXME: we culd make _Jv_FindClassFromSignature a template.
jclass klass = _Jv_FindClassInCache (utf, NULL);
if (klass && resolve)
_Jv_InitClass (klass);
return klass;
}
void
_Jv_WaitForState (jclass klass, int state)
{