[squeak-dev] The Trunk: Kernel-ct.1358.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Nov 25 11:10:28 UTC 2021
Christoph Thiede uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ct.1358.mcz
==================== Summary ====================
Name: Kernel-ct.1358
Author: ct
Time: 28 October 2020, 11:37:24.817544 pm
UUID: c9af6acb-61cf-af42-b5fa-3afa8451bb24
Ancestors: Kernel-mt.1353
Fixes a simulation bug that occurs when executing ProtoObject >> #doesNotUnderstand:. See KernelTests-ct.388.
=============== Diff against Kernel-mt.1353 ===============
Item was changed:
----- Method: Context>>send:to:with:lookupIn: (in category 'controlling') -----
send: selector to: rcvr with: arguments lookupIn: lookupClass
"Simulate the action of sending a message with selector and arguments
to rcvr. The argument, lookupClass, is the class in which to lookup the
message. This is the receiver's class for normal messages, but for super
messages it will be some specific class related to the source method."
| meth primIndex val ctxt |
(meth := lookupClass lookupSelector: selector) ifNil:
+ [selector == #doesNotUnderstand: ifTrue:
+ [self error: ('Simulated message {1} not understood' translated format: {selector})].
+ ^self send: #doesNotUnderstand:
- [^self send: #doesNotUnderstand:
to: rcvr
with: {(Message selector: selector arguments: arguments) lookupClass: lookupClass}
lookupIn: lookupClass].
meth numArgs ~= arguments size ifTrue:
[^self error: 'Wrong number of arguments in simulated message ', selector printString].
(primIndex := meth primitive) > 0 ifTrue:
[val := self doPrimitive: primIndex method: meth receiver: rcvr args: arguments.
(self isPrimFailToken: val) ifFalse:
[^val]].
- (selector == #doesNotUnderstand: and: [lookupClass == ProtoObject]) ifTrue:
- [^self error: 'Simulated message ', arguments first selector, ' not understood'].
ctxt := Context sender: self receiver: rcvr method: meth arguments: arguments.
primIndex > 0 ifTrue:
[ctxt failPrimitiveWith: val].
^ctxt!
More information about the Squeak-dev
mailing list
|