Object.st
changeset 8798 73676c762813
parent 8789 4872313c787a
child 8806 03e74cded971
--- a/Object.st	Wed Mar 23 17:53:06 2005 +0100
+++ b/Object.st	Wed Mar 23 17:58:11 2005 +0100
@@ -3645,22 +3645,30 @@
 !
 
 fromLiteralArrayEncoding:aSpecArray
-    "read my attributes from aSpecArray"
-
-    |sel val
+    "read my attributes from aSpecArray.
+     Recursively decodes arguments."
+
+    |sel litVal val
      stop   "{ Class:SmallInteger }" |
 
     stop := aSpecArray size.
 
     2 to:stop by:2 do:[:i|
         sel := aSpecArray at:i.
-        val := aSpecArray at:i + 1.
+        litVal := aSpecArray at:i + 1.
 
         (self respondsTo:sel) ifTrue:[
-            self perform:sel with:(val decodeAsLiteralArray)
+            val := litVal decodeAsLiteralArray.
+            self perform:sel with:val
         ] ifFalse:[
             Transcript show:self class name; show:': unhandled literalArrayEncoding attribute: '.
             Transcript showCR:sel.
+
+            "/ thats a debug halt,
+            "/ it should probably be removed (to simply ignore unhandled attributes)...
+            "/ for now, it is left in, in order to easily find incompatibilities between
+            "/ VW and ST/X.
+            self halt:('Unrecognized attribute in spec: #', sel).  "/ value is:   val  / litVal.
         ]
     ]
 !
@@ -9205,7 +9213,7 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.520 2005-03-16 11:03:51 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.521 2005-03-23 16:58:11 cg Exp $'
 ! !
 
 Object initialize!