Alex why ghost is not ok?
Because you want to have a portable proxy?

Stef

Le 27/2/15 03:43, Alexandre Bergel a écrit :
Hi!

I have a near-to-be naive question. Maybe there is something obvious, but I 
cannot see it. Consider the following implementation of a proxy:

-=-=-=-=-=-=-=-=-=-=-=-=
Object subclass: #MyProxy
        instanceVariableNames: 'object'.

MyProxy >> object: anObject
        object := anObject
        
MyProxy >> doesNotUnderstand: aMessage
        ^ object perform: aMessage selector withArguments: aMessage arguments
        
Object >> wrap
        self becomeForward: (MyProxy new object: self; yourself)
-=-=-=-=-=-=-=-=-=-=-=-=

The problem is with wrap. After the becomeForward:, MyProxy has itself in the 
object variable. Even self is apparently subject to the #become.

It means that the following code loop indefinitely

-=-=-=-=-=-=-=-=-=-=-=-=
d := Dictionary new.
d wrap.
d add: #foo -> 10
-=-=-=-=-=-=-=-=-=-=-=-=

I know there is Mariano’s library to write proxy. But I still wondering whether 
this could be done simply.
Any idea how to simply create a proxy?

Cheers,
Alexandre



Reply via email to