summaryrefslogtreecommitdiffstats
path: root/libjava/gnu
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-04 17:59:40 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-04 17:59:40 +0000
commit137ce14a7ddf577f3518979177094142d4af0062 (patch)
treee521b0eaad4a6095d031024a451e9d1b0154518b /libjava/gnu
parent8bd6bfa86f696adceed3fd9e0f23216474359c08 (diff)
downloadppe42-gcc-137ce14a7ddf577f3518979177094142d4af0062.tar.gz
ppe42-gcc-137ce14a7ddf577f3518979177094142d4af0062.zip
* java/lang/Class.h (_Jv_CopyClassesToSystemLoader): Updated.
* java/lang/natClassLoader.cc (_Jv_CopyClassesToSystemLoader): Changed argument type. Use SystemClassLoader.addClass. * gnu/gcj/runtime/SystemClassLoader.java (addClass): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109340 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu')
-rw-r--r--libjava/gnu/gcj/runtime/SystemClassLoader.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/libjava/gnu/gcj/runtime/SystemClassLoader.java b/libjava/gnu/gcj/runtime/SystemClassLoader.java
index 1bb5ef94212..efd33230fbe 100644
--- a/libjava/gnu/gcj/runtime/SystemClassLoader.java
+++ b/libjava/gnu/gcj/runtime/SystemClassLoader.java
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005 Free Software Foundation
+/* Copyright (C) 2005, 2006 Free Software Foundation
This file is part of libgcj.
@@ -21,6 +21,25 @@ public final class SystemClassLoader extends URLClassLoader
super(new URL[0], parent);
}
+ // This is called to register a native class which was linked into
+ // the application but which is registered with the system class
+ // loader after the VM is initialized.
+ void addClass(Class klass)
+ {
+ String packageName = null;
+ String className = klass.getName();
+ int lastDot = className.lastIndexOf('.');
+ if (lastDot != -1)
+ packageName = className.substring(0, lastDot);
+ if (packageName != null && getPackage(packageName) == null)
+ {
+ // Should have some way to store this information in a
+ // precompiled manifest.
+ definePackage(packageName, null, null, null, null, null, null, null);
+ }
+ loadedClasses.put(className, klass);
+ }
+
// We add the URLs to the system class loader late. The reason for
// this is that during bootstrap we don't want to parse URLs or
// create URL connections, since that will result in circularities
OpenPOWER on IntegriCloud