Changeset 12071
- Timestamp:
- 07/28/09 06:23:20 (14 years ago)
- Location:
- trunk/abcl/src/org/armedbear/lisp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/Primitives.java
r12055 r12071 3712 3712 { 3713 3713 result = eval(args.car(), env, thread); 3714 } 3715 finally 3716 { 3714 3717 values = thread._values; 3715 }3716 finally3717 {3718 3718 LispObject body = args.cdr(); 3719 3719 while (body != NIL) … … 3722 3722 body = ((Cons)body).cdr; 3723 3723 } 3724 thread._values = values; 3724 3725 } 3725 3726 if (values != null) -
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r12051 r12071 7829 7829 ;; The Throwable object is on the runtime stack. Stack depth is 1. 7830 7830 (astore exception-register) 7831 (emit-push-current-thread) 7832 (emit 'getfield +lisp-thread-class+ "_values" +lisp-object-array+) 7833 (astore values-register) 7831 7834 (let ((*register* *register*)) 7832 7835 (dolist (subform cleanup-forms) 7833 7836 (compile-form subform nil nil))) 7834 7837 (maybe-emit-clear-values cleanup-forms) 7838 (emit-push-current-thread) 7839 (aload values-register) 7840 (emit 'putfield +lisp-thread-class+ "_values" +lisp-object-array+) 7835 7841 (aload exception-register) 7836 7842 (emit 'athrow) ; Re-throw exception.
Note: See TracChangeset
for help on using the changeset viewer.