This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Patch: FYI: Fix for `gij -jar' bug
- From: Tom Tromey <tromey at redhat dot com>
- To: Java Patch List <java-patches at gcc dot gnu dot org>
- Date: 12 Dec 2001 21:25:20 -0700
- Subject: Patch: FYI: Fix for `gij -jar' bug
- Reply-to: tromey at redhat dot com
I'm checking this in.
So much for cleaning up the init code. This fixes the bug Nic found,
and it does remove some small amount of ugliness.
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* prims.cc (_Jv_RunMain): Use `using' to simplify code. Set
_Jv_Jar_Class_Path early.
Index: prims.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/prims.cc,v
retrieving revision 1.63
diff -u -r1.63 prims.cc
--- prims.cc 2001/12/11 04:03:57 1.63
+++ prims.cc 2001/12/13 02:52:18
@@ -994,6 +994,10 @@
try
{
+ // Set this very early so that it is seen when java.lang.System
+ // is initialized.
+ if (is_jar)
+ _Jv_Jar_Class_Path = strdup (name);
_Jv_CreateJavaVM (NULL);
// Get the Runtime here. We want to initialize it before searching
@@ -1002,20 +1006,12 @@
arg_vec = JvConvertArgv (argc - 1, argv + 1);
+ using namespace gnu::gcj::runtime;
if (klass)
- main_thread = new gnu::gcj::runtime::FirstThread (klass, arg_vec);
+ main_thread = new FirstThread (klass, arg_vec);
else
- main_thread = new gnu::gcj::runtime::FirstThread
- (JvNewStringLatin1 (name), arg_vec, is_jar);
-
- if (is_jar)
- {
- // We need a new ClassLoader because the classpath must be the
- // jar file only. The easiest way to do this is to lose our
- // reference to the previous classloader.
- _Jv_Jar_Class_Path = strdup (name);
- gnu::gcj::runtime::VMClassLoader::instance = NULL;
- }
+ main_thread = new FirstThread (JvNewStringLatin1 (name),
+ arg_vec, is_jar);
}
catch (java::lang::Throwable *t)
{