[armedbear-cvs] r12996 - trunk/abcl/src/org/armedbear/lisp
Erik Huelsmann
ehuelsmann at common-lisp.net
Thu Nov 4 13:41:41 UTC 2010
Author: ehuelsmann
Date: Thu Nov 4 09:41:38 2010
New Revision: 12996
Log:
Fix JRockit crashing on our byte code - second occurrance.
Found by: Joel Borggrén-Franck
joel (dot) borggren (dot) franck <at> gmail.com
Patch by: me
Modified:
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp (original)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp Thu Nov 4 09:41:38 2010
@@ -6447,6 +6447,7 @@
(BEGIN-PROTECTED-RANGE (gensym))
(END-PROTECTED-RANGE (gensym))
(THROW-HANDLER (gensym))
+ (RETHROW (gensym))
(DEFAULT-HANDLER (gensym))
(EXIT (gensym)))
(compile-form (second form) tag-register nil) ; Tag.
@@ -6473,6 +6474,11 @@
(list +lisp-thread+) +lisp-object+)
(emit-move-from-stack target) ; Stack depth is 0.
(emit 'goto EXIT)
+ (label RETHROW) ; Start of handler for all other Throwables.
+ ;; A Throwable object is on the runtime stack here. Stack depth is 1.
+ (emit-push-current-thread)
+ (emit-invokevirtual +lisp-thread+ "popCatchTag" nil nil)
+ (emit 'athrow) ; Re-throw.
(label DEFAULT-HANDLER) ; Start of handler for all other Throwables.
;; A Throwable object is on the runtime stack here. Stack depth is 1.
(emit-push-current-thread)
More information about the armedbear-cvs
mailing list