[squeak-dev] Re: Bug with valueWithReceiver:arguments:

Eliot Miranda eliot.miranda at gmail.com
Mon Oct 27 23:55:48 UTC 2008


Well I actually wrote the fix as
primitiveExecuteMethod
"receiver, args, then method are on top of stack. Execute method against
receiver and args"
newMethod := self popStack.
primitiveIndex := self primitiveIndexOf: newMethod.
self success: argumentCount - 1 = (self argumentCountOf: newMethod).
successFlag
ifTrue: [argumentCount := argumentCount - 1.
self executeNewMethod.
"Recursive xeq affects successFlag"
successFlag := true]
ifFalse: [self unPop: 1]

to agree with the perform code.  The fix is to ensure that successFlag is
true.

On Sun, Oct 26, 2008 at 10:45 PM, John M McIntosh <
johnmci at smalltalkconsulting.com> wrote:

> Er, my only comment on this is that although
> in C it's defined as
>
> sqInt success(sqInt);
>
> but it's written as
> success: successValue
>        successFlag := successValue & successFlag.
>
> which resolves as
> sqInt success(sqInt successValue) {
> register struct foo * foo = &fum;
>        foo->successFlag = successValue && foo->successFlag;
> }
> or
> sqInt success(sqInt successValue) {
>        foo->successFlag = successValue && foo->successFlag;
> }
> or
> sqInt success(sqInt successValue) {
>        successFlag = successValue && successFlag;
> }
>
>
> so what does
>  [ ... ^ self success: true]
> actually return?
>
>
>
> On Oct 26, 2008, at 7:13 PM, Eliot Miranda wrote:
>
>  Perhaps #primitiveExecuteMethod should end with an explicit [ ... ^ self
>> success: true] in its true-branch (this is just a thought, I have as yet not
>>
>
> --
> ===========================================================================
> John M. McIntosh <johnmci at smalltalkconsulting.com>
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20081027/33da0ab1/attachment.htm


More information about the Squeak-dev mailing list