[Vm-dev] Object>>#at:put: reports improper store when everything seems fine

André Wendt andre.wendt at hpi.uni-potsdam.de
Wed Apr 2 07:02:45 UTC 2008


I just stumble upon this: Object>>#at:put: calls <primitive:61>. If that
fails, the following lines read

index isInteger ifTrue:
	[self class isVariable
		ifTrue: [(index >= 1 and: [index <= self size])
			ifTrue: [self errorImproperStore]

Why is it an improper store if the index is an integer, the receiver
class is variable, and the index is within bounds? Someone please
enlighten me...

(If this is merely reporting "there was an error in the primitive
although everything's alright", then I feel the message should be
something other than "Improper store into indexable object".)


More information about the Vm-dev mailing list