aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2001-06-15 23:22:02 +0000
committerTom Tromey <tromey@gcc.gnu.org>2001-06-15 23:22:02 +0000
commit6728a61d1f8aaf9d848fce3584e952fb5f0d3f67 (patch)
tree66a09d8d7bb82b638704942709ea98d649fdbfa3
parent21ea1c28cf21127a3a6e4155a977bd78542a5c4c (diff)
downloadgcc-6728a61d1f8aaf9d848fce3584e952fb5f0d3f67.zip
gcc-6728a61d1f8aaf9d848fce3584e952fb5f0d3f67.tar.gz
gcc-6728a61d1f8aaf9d848fce3584e952fb5f0d3f67.tar.bz2
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
-rw-r--r--libjava/ChangeLog9
-rw-r--r--libjava/java/lang/natRuntime.cc5
-rw-r--r--libjava/prims.cc12
3 files changed, 23 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index c50caf8..9d20d86 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,5 +1,14 @@
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.
(ObjectClass): Likewise.
(ThrowableClass): Likewise.
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
index 20005b9..cdd44a4 100644
--- a/libjava/java/lang/natRuntime.cc
+++ b/libjava/java/lang/natRuntime.cc
@@ -69,7 +69,7 @@ _Jv_FindSymbolInExecutable (const char *symname)
return r;
}
- return lt_dlsym (NULL, symname);
+ return NULL;
}
#else
@@ -199,6 +199,9 @@ java::lang::Runtime::init (void)
finalize_on_exit = false;
#ifdef USE_LTDL
lt_dlinit ();
+ lt_dlhandle self = lt_dlopen (NULL);
+ if (self != NULL)
+ add_library (self);
#endif
}
diff --git a/libjava/prims.cc b/libjava/prims.cc
index f112812..eac47e5 100644
--- a/libjava/prims.cc
+++ b/libjava/prims.cc
@@ -1008,6 +1008,10 @@ JvRunMain (jclass klass, int argc, const char **argv)
_Jv_ThisExecutable (argv[0]);
#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);
arg_vec = JvConvertArgv (argc - 1, argv + 1);
runFirst (klass, arg_vec);
@@ -1015,7 +1019,7 @@ JvRunMain (jclass klass, int argc, const char **argv)
int status = (int) java::lang::ThreadGroup::had_uncaught_exception;
- java::lang::Runtime::getRuntime ()->_exit (status);
+ rtime->_exit (status);
}
void
@@ -1031,6 +1035,10 @@ _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar)
_Jv_ThisExecutable (exec_name);
#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);
if (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;
- java::lang::Runtime::getRuntime ()->exit (status);
+ rtime->exit (status);
}