[armedbear-cvs] r12205 - trunk/abcl/src/org/armedbear/lisp

Erik Huelsmann ehuelsmann at common-lisp.net
Sat Oct 17 21:08:36 UTC 2009


Author: ehuelsmann
Date: Sat Oct 17 17:08:35 2009
New Revision: 12205

Log:
Fix hard crashes in BEYOND-ANSI tests.

Note: Don't cheer too hard; there are 158 tests failing (out of 527).

Modified:
   trunk/abcl/src/org/armedbear/lisp/SpecialOperators.java
   trunk/abcl/src/org/armedbear/lisp/StandardObject.java

Modified: trunk/abcl/src/org/armedbear/lisp/SpecialOperators.java
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/SpecialOperators.java	(original)
+++ trunk/abcl/src/org/armedbear/lisp/SpecialOperators.java	Sat Oct 17 17:08:35 2009
@@ -47,7 +47,7 @@
       {
         if (args.cdr() != NIL)
           return error(new WrongNumberOfArgumentsException(this));
-        return ((Cons)args).car;
+        return args.car();
       }
     };
 

Modified: trunk/abcl/src/org/armedbear/lisp/StandardObject.java
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/StandardObject.java	(original)
+++ trunk/abcl/src/org/armedbear/lisp/StandardObject.java	Sat Oct 17 17:08:35 2009
@@ -252,7 +252,9 @@
       }
     Debug.assertTrue(layout != null);
     int index = layout.getSlotIndex(slotName);
-    Debug.assertTrue(index >= 0);
+    //### FIXME: should call SLOT-MISSING (clhs)
+    if (index < 0)
+      return error(new LispError("Missing slot " + slotName.writeToString()));
     return slots[index];
   }
 
@@ -268,7 +270,9 @@
       }
     Debug.assertTrue(layout != null);
     int index = layout.getSlotIndex(slotName);
-    Debug.assertTrue(index >= 0);
+    //### FIXME: should call SLOT-MISSING (clhs)
+    if (index < 0)
+      error(new LispError("Missing slot " + slotName.writeToString()));
     slots[index] = newValue;
   }
 




More information about the armedbear-cvs mailing list