diff options
author | Tom Tromey <tromey@redhat.com> | 2002-12-11 03:15:14 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2002-12-11 03:15:14 +0000 |
commit | ad1121d10ea102d3f193413a4c80e3b48a4ecec2 (patch) | |
tree | b22d13e76c99db3d512cbaf990977196e108fb80 /libjava/java/lang/natClassLoader.cc | |
parent | a7e693d5d2ae7ddd3a14e4420ab88f677efbcebe (diff) | |
download | gcc-ad1121d10ea102d3f193413a4c80e3b48a4ecec2.zip gcc-ad1121d10ea102d3f193413a4c80e3b48a4ecec2.tar.gz gcc-ad1121d10ea102d3f193413a4c80e3b48a4ecec2.tar.bz2 |
Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (nat_source_files): Added natVMClassLoader.cc.
* gnu/gcj/runtime/natVMClassLoader.cc: New file.
(gnu::gcj::runtime::VMClassLoader::findClass): Moved here.
* java/lang/natClassLoader.cc
(gnu::gcj::runtime::VMClassLoader::findClass): Removed.
From-SVN: r60020
Diffstat (limited to 'libjava/java/lang/natClassLoader.cc')
-rw-r--r-- | libjava/java/lang/natClassLoader.cc | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index debcb4f..db5ac94 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -189,57 +189,6 @@ java::lang::VMClassLoader::getPrimitiveClass (jchar type) return _Jv_FindClassFromSignature (sig, NULL); } -// This is the findClass() implementation for the System classloader. It is -// the only native method in VMClassLoader, so we define it here. -jclass -gnu::gcj::runtime::VMClassLoader::findClass (jstring name) -{ - _Jv_Utf8Const *name_u = _Jv_makeUtf8Const (name); - jclass klass = _Jv_FindClassInCache (name_u, 0); - - if (! klass) - { - // Turn `gnu.pkg.quux' into `lib-gnu-pkg-quux'. Then search for - // a module named (eg, on Linux) `lib-gnu-pkg-quux.so', followed - // by `lib-gnu-pkg.so' and `lib-gnu.so'. If loading one of - // these causes the class to appear in the cache, then use it. - java::lang::StringBuffer *sb = new java::lang::StringBuffer (JvNewStringLatin1("lib-")); - // Skip inner classes - jstring cn; - jint ci = name->indexOf('$'); - if (ci == -1) - cn = name; - else - cn = name->substring (0, ci); - jstring so_base_name = (sb->append (cn)->toString ())->replace ('.', '-'); - - // Compare against `3' because that is the length of "lib". - while (! klass && so_base_name && so_base_name->length() > 3) - { - using namespace ::java::lang; - Runtime *rt = Runtime::getRuntime(); - jboolean loaded = rt->loadLibraryInternal (so_base_name); - - jint nd = so_base_name->lastIndexOf ('-'); - if (nd == -1) - so_base_name = NULL; - else - so_base_name = so_base_name->substring (0, nd); - - if (loaded) - klass = _Jv_FindClassInCache (name_u, 0); - } - } - - // Now try loading using the interpreter. - if (! klass) - { - klass = java::net::URLClassLoader::findClass (name); - } - - return klass; -} - jclass java::lang::ClassLoader::findLoadedClass (jstring name) { |