Commit 86a42a5f by Bryce McKinlay Committed by Bryce McKinlay

Throwable.java (trace_enabled): New static field.

	* 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.

From-SVN: r38442
parent 98c17df2
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> 2000-12-21 Tom Tromey <tromey@redhat.com>
* java/beans/PropertyChangeListener.java: Extends EventListener. * java/beans/PropertyChangeListener.java: Extends EventListener.
......
...@@ -164,6 +164,8 @@ public class Throwable implements Serializable ...@@ -164,6 +164,8 @@ public class Throwable implements Serializable
// Name of this field comes from serialization spec. // Name of this field comes from serialization spec.
private String detailMessage; private String detailMessage;
// Setting this flag to false prevents fillInStackTrace() from running.
static boolean trace_enabled = true;
private transient byte stackTrace[]; private transient byte stackTrace[];
private static final long serialVersionUID = -3042686055658047285L; private static final long serialVersionUID = -3042686055658047285L;
} }
...@@ -50,6 +50,8 @@ extern "C" int __ia64_backtrace (void **array, int size); ...@@ -50,6 +50,8 @@ extern "C" int __ia64_backtrace (void **array, int size);
java::lang::Throwable * java::lang::Throwable *
java::lang::Throwable::fillInStackTrace (void) java::lang::Throwable::fillInStackTrace (void)
{ {
if (! trace_enabled)
return this;
#if defined (HAVE_BACKTRACE) || defined (__ia64__) #if defined (HAVE_BACKTRACE) || defined (__ia64__)
void *p[128]; void *p[128];
......
...@@ -687,6 +687,10 @@ win32_exception_handler (LPEXCEPTION_POINTERS e) ...@@ -687,6 +687,10 @@ win32_exception_handler (LPEXCEPTION_POINTERS e)
static void static void
main_init () 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; INIT_SEGV;
#ifdef HANDLE_FPE #ifdef HANDLE_FPE
INIT_FPE; INIT_FPE;
...@@ -697,6 +701,8 @@ main_init () ...@@ -697,6 +701,8 @@ main_init ()
no_memory = new java::lang::OutOfMemoryError; no_memory = new java::lang::OutOfMemoryError;
java::lang::Throwable::trace_enabled = 1;
#ifdef USE_LTDL #ifdef USE_LTDL
LTDL_SET_PRELOADED_SYMBOLS (); LTDL_SET_PRELOADED_SYMBOLS ();
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment