I would really like if somebody can check that if we remove that cool method SmartRefStream still work. A couple tests would be welcome. restoreClassInstVars "Install the values of the class instance variables of UniClasses (i.e. scripts slotInfo). classInstVars is ((#Player25 scripts slotInfo) ...). Thank you Mark Wai for the bug fix." | normal aName newName newCls trans rList start | self flag: #bobconv. self moreObjects ifFalse: [^ self]. "are no UniClasses with class inst vars" classInstVars := super next. "Array of arrays" normal := Object class instSize. "might give trouble if Player class superclass changes size" (structures at: #Player ifAbsent: [#()]) = #(0 'dependents' 'costume') ifTrue: [trans := 1]. "now (0 costume costumes). Do the conversion of Player class inst vars in Update 509." classInstVars do: [:list | aName := (list at: 1) asSymbol. rList := list. newName := renamed at: aName ifAbsent: [aName]. newCls := Smalltalk at: newName ifAbsent: [self error: 'UniClass definition missing']. ("old conversion" trans == 1 and: [newCls inheritsFrom: Player]) ifTrue: [ "remove costumeDictionary from Player class inst vars" rList := rList asOrderedCollection. rList removeAt: 4]. "costumeDictionary's value" start := list second = 'Update to read classPool' ifTrue: [4] ifFalse: [2]. newCls class instSize = (normal + (rList size) - start + 1) ifFalse: [self error: 'UniClass superclass class has changed size']. "Need to install a conversion method mechanism" start = 4 ifTrue: [newCls instVarAt: normal - 1 "classPool" put: (list at: 3)]. start to: rList size do: [:ii | newCls instVarAt: normal + ii - start + 1 put: (rList at: ii)]].