[FIX] MethodAsObject also for perform: ([closed] superseded by fix from today)

Markus Gaelli gaelli at emergent.de
Mon Mar 8 07:25:59 UTC 2004


Am Freitag, 20.02.04 um 18:50 Uhr schrieb gaelli at emergent.de:

> from preamble:
>
> "Change Set:		MethodAsObject also for perform:
> Date:			20 February 2004
> Author:			Markus Gaelli
>
> 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.
> "!
> <MethodAsObject also for perform:.cs.gz>




More information about the Squeak-dev mailing list