About some changes in 3.8

stéphane ducasse ducasse at iam.unibe.ch
Wed Jan 25 09:14:30 UTC 2006


Hi andreas

following our discussions about changes, I loaded tweak updated it  
and browse the references to CSqueak3Point8Detected
I put the code here so that people can follow.

Do you have fixes? Again if you would have point that to the 3.8 team  
(not me you know)
may be they would have fixed that.

Stef

> I just browsed Tweak and looked at references of the exception
> CSqueak3Point8Detected as mentioned by andreas
>
> I report here the stuff he is checking I let you judge.
>
>
> ProtoObject class>>addSelectorSilently: selector withMethod: newMethod
> 	| oldMethod result done |
> 	CSqueak3Point8Detected signal. "Only used from 3.8"
> 	oldMethod := self compiledMethodAt: selector ifAbsent:[nil].
> 	done := false.
> 	[result := super addSelectorSilently: selector withMethod: newMethod]
> 		on: CSqueak3Point8Detected do:[:ex| done := true. ex resume].
> 	done ifFalse:[self methodChanged: selector from: oldMethod to:  
> newMethod].
> 	^result
>
>
> addSelector: selector withMethod: newMethod
> 	| oldMethod result done |
> 	oldMethod := self compiledMethodAt: selector ifAbsent:[nil].
> 	done := false.
> 	result := [super addSelector: selector withMethod: newMethod]
> 		on: CSqueak3Point8Detected do:[:ex| done := true. ex resume].
> 	done ifFalse:[self methodChanged: selector from: oldMethod to:  
> newMethod].
> 	^result
>
> addSelector: selector withMethod: newMethod notifying: requestor
> 	| oldMethod result |
> 	CSqueak3Point8Detected signal. "Only used from 3.8"
> 	oldMethod := self compiledMethodAt: selector ifAbsent:[nil].
> 	result := super addSelector: selector withMethod: newMethod  
> notifying: requestor.
> 	self methodChanged: selector from: oldMethod to: newMethod.
> 	^result
>
>
> basicRemoveSelector: selector
> 	| oldMethod result |
> 	CSqueak3Point8Detected signal. "Only used in 3.8"
> 	oldMethod := self compiledMethodAt: selector ifAbsent:[^nil].
> 	result := super basicRemoveSelector: selector.
> 	self methodChanged: selector from: oldMethod to: nil.
> 	^result
>
> removeSelector: selector
> 	| oldMethod result done |
> 	oldMethod := self compiledMethodAt: selector ifAbsent:[^nil].
> 	done := false.
> 	result := [super removeSelector: selector]
> 		on: CSqueak3Point8Detected do:[:ex| done := true. ex resume].
> 	done ifFalse:[self methodChanged: selector from: oldMethod to: nil].
> 	^result
>
>
>
>
>
>




More information about the Squeak-dev mailing list