On Jan 21, 2010, at 19:56 , Lukas Renggli wrote:

>> Any ideas where this black magic comes from ?
> 
> From what I know Symbols always end up in the out-pointers because
> they are always referenced at least from the Symbol table.

Not necessarily. The symbol table is a *weak* set and hence if you don't 
strongly hold onto the symbols they get into the segment array and not into the 
out pointers! This is a potential source of subtle problems because after 
loading the segment you end up with duplicated symbols (we run into this with 
Cmsbox...). The easiest solution is to create a temporary variable and assign 
"Symbol allSymbols" while creating a segment.

> That means they are serialized by the reference stream, which means
> that the not so black magic happens in ReferenceStream>>#readSymbol.

Yep.

Cheers,
Adrian

> 
> Lukas
> 
> -- 
> Lukas Renggli
> http://www.lukas-renggli.ch
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to