[armedbear-cvs] r12694 - branches/0.20.x/abcl/src/org/armedbear/lisp

Alessio Stalla astalla at common-lisp.net
Sun May 16 21:13:13 UTC 2010


Author: astalla
Date: Sun May 16 17:13:12 2010
New Revision: 12694

Log:
Backported r12693 to 0.20 branch


Modified:
   branches/0.20.x/abcl/src/org/armedbear/lisp/Stream.java

Modified: branches/0.20.x/abcl/src/org/armedbear/lisp/Stream.java
==============================================================================
--- branches/0.20.x/abcl/src/org/armedbear/lisp/Stream.java	(original)
+++ branches/0.20.x/abcl/src/org/armedbear/lisp/Stream.java	Sun May 16 17:13:12 2010
@@ -735,20 +735,21 @@
         final LispThread thread = LispThread.currentThread();
         final Readtable rt = rta.rt(thread);
         LispObject fun = rt.getDispatchMacroCharacter(dispChar, c);
-        if (fun instanceof DispatchMacroFunction)
-            return ((DispatchMacroFunction)fun).execute(this, c, numArg);
         if (fun != NIL) {
-            LispObject result =
-                thread.execute(fun, this, LispCharacter.getInstance(c),
-                               (numArg < 0) ? NIL : Fixnum.getInstance(numArg));
-            LispObject[] values = thread._values;
-            if (values != null && values.length == 0)
-                result = null;
+            LispObject result;
+
             thread._values = null;
-            return result;
+            if (fun instanceof DispatchMacroFunction)
+                return ((DispatchMacroFunction)fun).execute(this, c, numArg);
+            else
+                return
+                    thread.execute(fun, this, LispCharacter.getInstance(c),
+                       (numArg < 0) ? NIL : Fixnum.getInstance(numArg));
         }
+
         if (Symbol.READ_SUPPRESS.symbolValue(thread) != NIL)
             return null;
+
         return error(new ReaderError("No dispatch function defined for #\\" + c,
                                      this));
     }




More information about the armedbear-cvs mailing list