diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-04 23:25:09 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-04 23:25:09 +0000 |
| commit | cfccb34552155a0866a25cf5fc17a98b1565f29d (patch) | |
| tree | 69263b8da1ad85374698a5321589ea97c4c382ff /libjava/java/lang | |
| parent | d86ccd2cf85cab143f2ad064a0eebb1092397c2b (diff) | |
| download | ppe42-gcc-cfccb34552155a0866a25cf5fc17a98b1565f29d.tar.gz ppe42-gcc-cfccb34552155a0866a25cf5fc17a98b1565f29d.zip | |
PR libgcj/26990:
* prims.cc (_Jv_RunMain): Use exitNoChecksAccessor.
* gnu/java/lang/natMainThread.cc (call_main): Use
exitNoChecksAccessor.
* testsuite/libjava.lang/pr26990.out: New file.
* testsuite/libjava.lang/pr26990.java: New file.
* java/lang/Runtime.java (exitNoChecks): New method.
(exitNoChecksAccessor): Likewise.
(exit): Call exitNoChecks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112685 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang')
| -rw-r--r-- | libjava/java/lang/Runtime.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libjava/java/lang/Runtime.java b/libjava/java/lang/Runtime.java index 519b4ac8c5e..3466f19f2a0 100644 --- a/libjava/java/lang/Runtime.java +++ b/libjava/java/lang/Runtime.java @@ -146,9 +146,20 @@ public class Runtime SecurityManager sm = SecurityManager.current; // Be thread-safe! if (sm != null) sm.checkExit(status); + exitNoChecks(status); + } + // Accessor to avoid adding a vtable slot. + static void exitNoChecksAccessor(int status) + { + current.exitNoChecks(status); + } + + // Private since we can't add a vtable slot in 4.1.x. + private void exitNoChecks(int status) + { if (runShutdownHooks()) - halt(status); + exitInternal(status); // Someone else already called runShutdownHooks(). // Make sure we are not/no longer in the shutdownHooks set. @@ -171,7 +182,7 @@ public class Runtime // while finalization for exit is going on and the status is non-zero // we halt immediately. if (status != 0) - halt(status); + exitInternal(status); while (true) try |

