[Vm-dev] Fwd: [Pharo-project] Problem with Proxies, objects and MethoDict

stephane ducasse stephane.ducasse at gmail.com
Wed Sep 29 10:33:50 UTC 2010


Mariano 

why your proxy class does not have at least a format, methodDict and superclass?
In the past 

	Behavior new something was carashing the vm because methodDict was nil and boum it crashed. 
	I fixed that long time ago.
	Now I think that a class proxy cannot be just the same as an object proxy from the vm look at structure.

Stef

On Sep 28, 2010, at 10:29 PM, Mariano Martinez Peck wrote:

> Hi folks. I am trying to do something and I found a VM crash. Suppose I want to swap out a class, do a become with a proxy (that with the DNU will load the class back). In addition, I have instances of the swapped class.
> 
> Example of code (will crash in the last line):
> 
> o := MyObject new.
> o foo: 123.
> p := ClassProxy new.
> p become: MyObject.
> o == nil.
> o foo.
> 
> 
> My Object just extends Object, has an instVar 'foo',  and implements the accessors. 
> 
> ClassProxy implements:
> 
> become: aClass
>    className := aClass name.
>    aClass fileOut.
>    super become: aClass
> 
> and
> 
> doesNotUnderstand: aMessage
>    | reloadedClass |
>    (FileStream fileNamed: className, '.st') fileIn.
>    reloadedClass := Smalltalk at: className. 
>    self becomeForward: reloadedClass.
>    ^aMessage sendTo: reloadedClass
> 
> 
> So....does someone know why the crash?
> 
> how can I solve it ?
> 
> Thanks in advance
> 
> Mariano
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




More information about the Vm-dev mailing list