Search in your emails for this same method. I've been surprised before you ;) On Fri, Aug 12, 2011 at 5:12 PM, Igor Stasenko <siguctua@gmail.com> wrote:
DiskProxy>>comeFullyUpOnReload: smartRefStream "Internalize myself into a fully alive object after raw loading from a DataStream. (See my class comment.) DataStream will substitute the object from this eval for the DiskProxy."
(thisContext sender sender sender sender sender
sender sender sender receiver class == ImageSegment
and: [ thisContext sender sender sender
sender method == (DataStream compiledMethodAt: #readArray) ]) ifTrue: [ arrayIndex := thisContext sender sender sender sender tempAt:
| globalObj symbol arrayIndex | symbol := globalObjectName. "See if class is mapped to another name" (smartRefStream respondsTo: #renamed) ifTrue: [ "If in outPointers in an ImageSegment, remember original class name. See mapClass:installIn:. Would be lost otherwise." 4. "index var in readArray. Later safer to find i on stack of context." smartRefStream renamedConv at: arrayIndex put: symbol ]. "save original name" symbol := smartRefStream renamed at: symbol ifAbsent: [ symbol ] ]. "map" globalObj := Smalltalk globals at: symbol ifAbsent: [ preSelector == nil & (constructorSelector = #yourself) ifTrue: [ Transcript cr; show: symbol , ' is undeclared.'. (Undeclared includesKey: symbol) ifTrue: [ ^ Undeclared at: symbol ]. Undeclared at: symbol put: nil. ^ nil ]. ^ self error: 'Global "' , symbol , '" not found' ]. preSelector ifNotNil: [ Symbol hasInterned: preSelector ifTrue: [ :selector | [ globalObj := globalObj perform: selector ] on: Error do: [ :ex | ex messageText = 'key not found' ifTrue: [ ^ nil ]. ^ ex signal ] ] ]. "keep the Proxy if Project does not exist" constructorSelector ifNil: [ ^ globalObj ]. Symbol hasInterned: constructorSelector ifTrue: [ :selector | [ ^ globalObj perform: selector withArguments: constructorArgs ] on: Error do: [ :ex | ex messageText = 'key not found' ifTrue: [ ^ nil ]. ^ ex signal ] ]. "args not checked against Renamed" ^ nil
-- Best regards, Igor Stasenko AKA sig.
-- Mariano http://marianopeck.wordpress.com