A good example of how you (miss) used Smalltalk super-powers for the good or the evil ! http://www.cincomsmalltalk.com/userblogs/travis/blogView?showComments=true&p... ESUG then OOPSLA 2008 Nicolas 2011/8/12 Max Leske <maxleske@gmail.com>:
Good luck with refactoring *that*â¦
On 12.08.2011, at 17:12, Igor Stasenko 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.