--- 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!