OMFG! :-(((

--
Cheers,
Peter.

On 12 aug 2011, at 17:16, Max Leske <[email protected]> wrote:

> 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."
>> 
>>    | 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."
>>>>>>>            (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:
>> 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.
>> 
> 
> 

Reply via email to