This is the mail archive of the
java-patches@sources.redhat.com
mailing list for the Java project.
Patch: handle broken backtrace()
- To: java-patches at sources dot redhat dot com
- Subject: Patch: handle broken backtrace()
- From: Jeff Sturm <jeff dot sturm at appnet dot com>
- Date: Wed, 19 Jul 2000 10:03:54 -0400
- Organization: AppNet Inc.
The backtrace() function on some glibc platforms (Linux/Alpha) is
apparently unimplemented and always returns zero. This breaks
Throwable::fillInStackTrace, which always expect a return value
of at least one.
This patch fixes PR 286.
2000-07-19 Jeff Sturm <jeff.sturm@appnet.com>
* java/lang/natThrowable.cc (fillInStackTrace): Check for
zero return from backtrace().
Index: java/lang/natThrowable.cc
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/lang/natThrowable.cc,v
retrieving revision 1.6
diff -u -p -r1.6 natThrowable.cc
--- natThrowable.cc 2000/06/23 19:53:33 1.6
+++ natThrowable.cc 2000/07/19 13:41:19
@@ -61,9 +61,12 @@ java::lang::Throwable::fillInStackTrace
int n = backtrace (p, 128) - 1;
#endif
- // ??? Might this cause a problem if the byte array isn't aligned?
- stackTrace = JvNewByteArray (n * sizeof p[0]);
- memcpy (elements (stackTrace), p+1, (n * sizeof p[0]));
+ if (n > 0)
+ {
+ // ??? Might this cause a problem if the byte array isn't aligned?
+ stackTrace = JvNewByteArray (n * sizeof p[0]);
+ memcpy (elements (stackTrace), p+1, (n * sizeof p[0]));
+ }
#endif