[Pharo-project] strange loop

Stéphane Ducasse stephane.ducasse at inria.fr
Sun May 1 22:16:13 CEST 2011


On May 1, 2011, at 11:06 PM, Igor Stasenko wrote:

> On 1 May 2011 21:38, Stéphane Ducasse <stephane.ducasse at inria.fr> wrote:
>> this is strange
>> 
>> I was trying to code a simple list of method browser and my browser seems to
>> 
>> MorphExtension>>valueOfProperty: aSymbol
>>        "answer the value of the receiver's property named aSymbol"
>>        ^ extension ifNotNil: [extension valueOfProperty: aSymbol]
>> 
> hmm.. i have different implementation here:
> 
> valueOfProperty: aSymbol
> "answer the value of the receiver's property named aSymbol"
> 	^ self
> 		valueOfProperty: aSymbol
> 		ifAbsent: []
> 
> and there is no 'extension' ivar in MorphExtension class.
> Or you changed something there?


Not that I know.
I was just in plain 13380


> 
>> I end up in a endless loop
>> 
>> update: aParameter
>> 
>>        |state|
>>        aParameter  ifNil: [^self].
>>        getLabelSelector ifNotNil: [
>>                aParameter == getLabelSelector ifTrue: [
>>                        (self labelMorph respondsTo: #font)
>>                                ifTrue: [self label: (model perform: getLabelSelector) font: self labelMorph font]
>>                                ifFalse: [self label: (model perform: getLabelSelector)]]].
>>        state := self getModelState.
>>        (state ~= (self valueOfProperty: #lastState) or: [
>>                        ^^^
>> 
>> when I inspect self I get a PluggableButtonMorph
>> but the method shown in the debugger is MoprhExtension??????
>> 
>>        getStateSelector isNil and: [aParameter == #onOffColor]])
>>                ifTrue: [self color: self colorToUse.
>>                                self setProperty: #lastState toValue: state].
>>        aParameter == getEnabledSelector ifTrue: [^self enabled: (model perform: getEnabledSelector)].
>>        getColorSelector ifNotNil: [ | cc |
>>                color = (cc := model perform: getColorSelector)
>>                        ifFalse: [
>>                                color := cc.
>>                                self onColor: color offColor: color.
>>                                self changed ]].
>> 
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.




More information about the Pharo-project mailing list