From 6a3bad7d9850afa8c301363c0bfde69319ce5cc4 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Mon, 9 Oct 2000 01:54:50 +0000 Subject: re GNATS libgcj/341 (Throwable.printStackTrace() isn't working) 2000-10-09 Bryce McKinlay * include/jvm.h: Enable __builtin_expect(). * name-finder.cc (lookup): Don't trust dladdr() if the address is from the main program. Fix for PR libgcj/341. From-SVN: r36794 --- libjava/ChangeLog | 7 +++++++ libjava/include/jvm.h | 3 --- libjava/name-finder.cc | 6 +++++- 3 files changed, 12 insertions(+), 4 deletions(-) (limited to 'libjava') diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9bb268d..0486f6b 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,10 @@ +2000-10-09 Bryce McKinlay + + * include/jvm.h: Enable __builtin_expect(). + + * name-finder.cc (lookup): Don't trust dladdr() if the address is from + the main program. Fix for PR libgcj/341. + 2000-10-07 Tom Tromey * java/util/Properties.java: Merged with Classpath version. diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h index f453c9c..006f1d9 100644 --- a/libjava/include/jvm.h +++ b/libjava/include/jvm.h @@ -11,9 +11,6 @@ details. */ #ifndef __JAVA_JVM_H__ #define __JAVA_JVM_H__ -// FIXME: __builtin_expect doesn't work yet. -#define __builtin_expect(A,B) (A) - #include #include diff --git a/libjava/name-finder.cc b/libjava/name-finder.cc index 0085793..a29f5bd 100644 --- a/libjava/name-finder.cc +++ b/libjava/name-finder.cc @@ -136,6 +136,7 @@ _Jv_name_finder::toHex (void *p) bool _Jv_name_finder::lookup (void *p) { + extern char **_Jv_argv; toHex (p); #if defined (HAVE_DLFCN_H) && defined (HAVE_DLADDR) @@ -146,7 +147,10 @@ _Jv_name_finder::lookup (void *p) { strncpy (file_name, dl_info.dli_fname, sizeof file_name); strncpy (method_name, dl_info.dli_sname, sizeof method_name); - return true; + + /* Don't trust dladdr() if the address is from the main program. */ + if (strcmp (file_name, _Jv_argv[0]) != 0) + return true; } } #endif -- cgit v1.1