[Cuis-dev] Error performing advised methods
Juan Vuletich
juan at cuis.st
Fri Jan 13 09:14:42 PST 2023
Just pushed the change. Apologies for the inconvenience.
Thanks,
On 1/13/2023 12:49 PM, Mariano Montone via Cuis-dev wrote:
> Yes. Reverting the perform: method to its previous version solves the
> issue.
>
> El 13/1/23 a las 12:36, Juan Vuletich escribió:
>> On 1/13/2023 11:51 AM, Mariano Montone via Cuis-dev wrote:
>>> El 13/1/23 a las 11:11, Mariano Montone escribió:
>>>> Hi,
>>>>
>>>> There's an error with AdvisedMethod's implementation I would like
>>>> to fix.
>>>>
>>>> When installing an AdvisedMethod, an error is signaled if the
>>>> method tries to be performed (calling #perform:), instead of called
>>>> directly.
>>>>
>>>> I mean: myObject myAdvisedMethod, works. But: myObject perform:
>>>> #myAdvisedMethod, doesn't.
>>>>
>>>> The error says: 'bad number of arguments' when calling the
>>>> primitive in #perform: (primitive nr. 83).
>>>>
>>>> AdvisedMethods are implemented like this:
>>>>
>>>> AdvisedMethod is a subclass of Object that implements #run:
>>>> aSelector with: arguments in: aReceiver .
>>>>
>>>> To advise a method, the CompiledMethod instance at method selector
>>>> in the class method dictionary is replaced by an instance of
>>>> AdvisedMethod.
>>>>
>>>> Any ideas of what you think the problem is, possible fixes or
>>>> things I could try are welcomed.
>>>>
>>>> Thanks!
>>>>
>>>>
>>>> Mariano
>>>>
>>> I've tested in old images now, and this works there.
>>>
>>>
>>> This used to work when the #perform: implemented like this:
>>>
>>>
>>> perform: arg1
>>> <primitive: 83>
>>> ^ self
>>> perform: arg1
>>> withArguments: (Array new: 0).
>>>
>>
>> Hi Mariano,
>>
>> This was done in #5588, but it is actually not needed at all.
>>
>> Is going back to that implementation enough to fix the issues you
>> found? If so, let's do it.
>>
>> Thanks,
>>
>
--
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich
More information about the Cuis-dev
mailing list