OSDN Git Service

* java/lang/Throwable.java (trace_enabled): New static field.
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Dec 2000 06:19:24 +0000 (06:19 +0000)
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Dec 2000 06:19:24 +0000 (06:19 +0000)
* java/lang/natThrowable.cc (fillInStackTrace): Do nothing if
trace_enabled not set.
* prims.cc (main_init): Turn off trace_enabled while creating
default exception objects.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38442 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/lang/Throwable.java
libjava/java/lang/natThrowable.cc
libjava/prims.cc

index 34b9175..f7ce1f3 100644 (file)
@@ -1,3 +1,11 @@
+2000-12-22  Bryce McKinlay  <bryce@albatross.co.nz>
+
+       * java/lang/Throwable.java (trace_enabled): New static field.
+       * java/lang/natThrowable.cc (fillInStackTrace): Do nothing if
+       trace_enabled not set.
+       * prims.cc (main_init): Turn off trace_enabled while creating
+       default exception objects.
+
 2000-12-21  Tom Tromey  <tromey@redhat.com>
 
        * java/beans/PropertyChangeListener.java: Extends EventListener.
index 610a499..4aa2139 100644 (file)
@@ -164,6 +164,8 @@ public class Throwable implements Serializable
   // Name of this field comes from serialization spec.
   private String detailMessage;
 
+  // Setting this flag to false prevents fillInStackTrace() from running.
+  static boolean trace_enabled = true;
   private transient byte stackTrace[];
   private static final long serialVersionUID = -3042686055658047285L;
 }
index c7f19be..dab3ba6 100644 (file)
@@ -50,6 +50,8 @@ extern "C" int __ia64_backtrace (void **array, int size);
 java::lang::Throwable *
 java::lang::Throwable::fillInStackTrace (void)
 {
+  if (! trace_enabled)
+    return this;
 #if defined (HAVE_BACKTRACE) || defined (__ia64__)
   void *p[128];
   
index c6b8d20..0658574 100644 (file)
@@ -687,6 +687,10 @@ win32_exception_handler (LPEXCEPTION_POINTERS e)
 static void
 main_init ()
 {
+  // Turn stack trace generation off while creating exception objects.
+  _Jv_InitClass (&java::lang::Throwable::class$);
+  java::lang::Throwable::trace_enabled = 0;
+  
   INIT_SEGV;
 #ifdef HANDLE_FPE
   INIT_FPE;
@@ -697,6 +701,8 @@ main_init ()
 
   no_memory = new java::lang::OutOfMemoryError;
 
+  java::lang::Throwable::trace_enabled = 1;
+
 #ifdef USE_LTDL
   LTDL_SET_PRELOADED_SYMBOLS ();
 #endif