Commit 6728a61d by Tom Tromey Committed by Tom Tromey

natRuntime.cc (_Jv_FindSymbolInExecutable): Return NULL if no library on the list has the symbol.

	* java/lang/natRuntime.cc (_Jv_FindSymbolInExecutable): Return
	NULL if no library on the list has the symbol.
	(init): Call add_library on the program itself.
	* prims.cc (JvRunMain): Initialize Runtime before searching for
	`main'.
	(_Jv_RunMain): Likewise.

From-SVN: r43413
parent 21ea1c28
2001-06-15 Tom Tromey <tromey@redhat.com> 2001-06-15 Tom Tromey <tromey@redhat.com>
* java/lang/natRuntime.cc (_Jv_FindSymbolInExecutable): Return
NULL if no library on the list has the symbol.
(init): Call add_library on the program itself.
* prims.cc (JvRunMain): Initialize Runtime before searching for
`main'.
(_Jv_RunMain): Likewise.
2001-06-15 Tom Tromey <tromey@redhat.com>
* jni.cc (ClassClass): Removed; updated all users. * jni.cc (ClassClass): Removed; updated all users.
(ObjectClass): Likewise. (ObjectClass): Likewise.
(ThrowableClass): Likewise. (ThrowableClass): Likewise.
......
...@@ -69,7 +69,7 @@ _Jv_FindSymbolInExecutable (const char *symname) ...@@ -69,7 +69,7 @@ _Jv_FindSymbolInExecutable (const char *symname)
return r; return r;
} }
return lt_dlsym (NULL, symname); return NULL;
} }
#else #else
...@@ -199,6 +199,9 @@ java::lang::Runtime::init (void) ...@@ -199,6 +199,9 @@ java::lang::Runtime::init (void)
finalize_on_exit = false; finalize_on_exit = false;
#ifdef USE_LTDL #ifdef USE_LTDL
lt_dlinit (); lt_dlinit ();
lt_dlhandle self = lt_dlopen (NULL);
if (self != NULL)
add_library (self);
#endif #endif
} }
......
...@@ -1008,6 +1008,10 @@ JvRunMain (jclass klass, int argc, const char **argv) ...@@ -1008,6 +1008,10 @@ JvRunMain (jclass klass, int argc, const char **argv)
_Jv_ThisExecutable (argv[0]); _Jv_ThisExecutable (argv[0]);
#endif #endif
// Get the Runtime here. We want to initialize it before searching
// for `main'; that way it will be set up if `main' is a JNI method.
java::lang::Runtime *rtime = java::lang::Runtime::getRuntime ();
main_thread = _Jv_AttachCurrentThread (JvNewStringLatin1 ("main"), NULL); main_thread = _Jv_AttachCurrentThread (JvNewStringLatin1 ("main"), NULL);
arg_vec = JvConvertArgv (argc - 1, argv + 1); arg_vec = JvConvertArgv (argc - 1, argv + 1);
runFirst (klass, arg_vec); runFirst (klass, arg_vec);
...@@ -1015,7 +1019,7 @@ JvRunMain (jclass klass, int argc, const char **argv) ...@@ -1015,7 +1019,7 @@ JvRunMain (jclass klass, int argc, const char **argv)
int status = (int) java::lang::ThreadGroup::had_uncaught_exception; int status = (int) java::lang::ThreadGroup::had_uncaught_exception;
java::lang::Runtime::getRuntime ()->_exit (status); rtime->_exit (status);
} }
void void
...@@ -1031,6 +1035,10 @@ _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar) ...@@ -1031,6 +1035,10 @@ _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar)
_Jv_ThisExecutable (exec_name); _Jv_ThisExecutable (exec_name);
#endif #endif
// Get the Runtime here. We want to initialize it before searching
// for `main'; that way it will be set up if `main' is a JNI method.
java::lang::Runtime *rtime = java::lang::Runtime::getRuntime ();
main_thread = _Jv_AttachCurrentThread (JvNewStringLatin1 ("main"), NULL); main_thread = _Jv_AttachCurrentThread (JvNewStringLatin1 ("main"), NULL);
if (is_jar) if (is_jar)
...@@ -1061,7 +1069,7 @@ _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar) ...@@ -1061,7 +1069,7 @@ _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar)
int status = (int) java::lang::ThreadGroup::had_uncaught_exception; int status = (int) java::lang::ThreadGroup::had_uncaught_exception;
java::lang::Runtime::getRuntime ()->exit (status); rtime->exit (status);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment