From 090a3cbc4783aebb80c3a4fd5243150036965a33 Mon Sep 17 00:00:00 2001 From: aph Date: Wed, 14 Mar 2001 15:49:06 +0000 Subject: 2001-03-01 Andrew Haley * java/lang/natThrowable.cc (printRawStackTrace): Copy the stackTrace buffer to a correctly aligned pointer array. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40456 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/lang/natThrowable.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'libjava/java/lang') diff --git a/libjava/java/lang/natThrowable.cc b/libjava/java/lang/natThrowable.cc index dab3ba6387a..6080ea32399 100644 --- a/libjava/java/lang/natThrowable.cc +++ b/libjava/java/lang/natThrowable.cc @@ -65,7 +65,7 @@ java::lang::Throwable::fillInStackTrace (void) if (n > 0) { - // ??? Might this cause a problem if the byte array isn't aligned? + // We copy the array below to deal with alignment issues. stackTrace = JvNewByteArray (n * sizeof p[0]); memcpy (elements (stackTrace), p+1, (n * sizeof p[0])); } @@ -83,8 +83,9 @@ java::lang::Throwable::printRawStackTrace (java::io::PrintWriter *wr) if (!stackTrace) return; - void **p = (void **)elements (stackTrace); - int depth = stackTrace->length / sizeof p[0]; + int depth = stackTrace->length / sizeof (void *); + void *p[depth]; + memcpy (p, elements (stackTrace), sizeof p); _Jv_name_finder finder (_Jv_ThisExecutable ()); -- cgit v1.2.3