Changeset 3912
- Timestamp:
- 09/20/03 00:12:37 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/Primitives.java
r3910 r3912 3 3 * 4 4 * Copyright (C) 2002-2003 Peter Graves 5 * $Id: Primitives.java,v 1.41 5 2003-09-19 23:56:10piso Exp $5 * $Id: Primitives.java,v 1.416 2003-09-20 00:12:37 piso Exp $ 6 6 * 7 7 * This program is free software; you can redistribute it and/or … … 1746 1746 // ### handler-case 1747 1747 private static final SpecialOperator HANDLER_CASE = 1748 new SpecialOperator("handler-case") { 1748 new SpecialOperator("handler-case") 1749 { 1749 1750 public LispObject execute(LispObject args, Environment env) 1750 1751 throws ConditionThrowable … … 1754 1755 final LispThread thread = LispThread.currentThread(); 1755 1756 final int depth = thread.getStackDepth(); 1757 LispObject result; 1756 1758 try { 1757 re turneval(form, env, thread);1759 result = eval(form, env, thread); 1758 1760 } 1759 1761 catch (ConditionThrowable c) { … … 1783 1785 throw c; 1784 1786 } 1787 // No error. 1788 while (clauses != NIL) { 1789 Cons clause = checkCons(clauses.car()); 1790 if (clause.car() == Keyword.NO_ERROR) { 1791 Closure closure = new Closure(clause.cadr(), clause.cddr(), 1792 env); 1793 if (thread.getValues() != null) 1794 result = closure.execute(thread.getValues()); 1795 else 1796 result = closure.execute(result); 1797 break; 1798 } 1799 clauses = clauses.cdr(); 1800 } 1801 return result; 1785 1802 } 1786 1803 };
Note: See TracChangeset
for help on using the changeset viewer.