diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-04 17:59:40 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-04 17:59:40 +0000 |
commit | 137ce14a7ddf577f3518979177094142d4af0062 (patch) | |
tree | e521b0eaad4a6095d031024a451e9d1b0154518b /libjava/gnu | |
parent | 8bd6bfa86f696adceed3fd9e0f23216474359c08 (diff) | |
download | ppe42-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.java | 21 |
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 |