About some changed in 3.8
stéphane ducasse
ducasse at iam.unibe.ch
Tue Jan 24 20:03:27 UTC 2006
hi
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 V3dot9
mailing list