[FIX] MethodAsObjectForPerformV2

gaelli at emergent.de gaelli at emergent.de
Mon Mar 8 07:23:02 UTC 2004


from preamble:

"Change Set:		MethodAsObject also for perform:
Date:			20 February 2004
Author:			Markus Gaelli

Second try: Tim tried it and my test failed because lucky me wrote a
test for the other primitivePerformAt: and not the one I fixed
before.Now both primitvesPerforms should be fixed.

Needed Changes vor a new VM in which any wrapped perform: aSymbol gave a
primitive crash:
>From a mail from 8.1.2004:
Andreas acknowledged the bug already. He believes that some checking for
the right number
of parameters is only appropriate if the method at hand is a standard
compiled method.
He just does not have time for that right now.

Andreas Raab wrote:

Almost. The above is the problematic place and should be fixed with
(say)

    (self isCompiledMethod: newMethod) ifTrue:[
        self success: ((self argumentCountOf: newMethod) =
argumentCount).
    ].

and then

ObjectMemory>>isCompiledMethod: oop

    ^(self formatOf: oop) >= 12

Oh, and whoever does that can also fix #lookupMethodInDictionary to use
self isCompiledMethod: instead of the explicit format check.
"!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MethodAsObjectForPerformV2.cs.gz
Type: application/octet-stream
Size: 2310 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20040308/6aecc6ae/MethodAsObjectForPerformV2.cs.obj


More information about the Squeak-dev mailing list