Cycle dependency between ImageSegment and Multilingual

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Cycle dependency between ImageSegment and Multilingual

Mariano Martinez Peck
Hi folks. Jannik pointed to me a cycle  dependency between ImageSegment and Multilingual.

When you create a segment, there is a way to export the complete segment (segment in itself but also the outpointers) to a file, using SmartRefStream (ImageSegment >> writeForExportOn: )

Now...you can load the that file in another image. When this is done, SmartRefStream calls the method comeFullyUpOnReload:

So.... in ImageSegment >> comeFullyUpOnReload:    we a bigggggg method, which this lines (a part, of course):

importedObject is just one of all the objects that are in the SmartRefStream.


    (importedObject isKindOf: TTCFontSet) ifTrue: [
            existing := TTCFontSet familyName:
importedObject familyName
                        pointSize:
importedObject pointSize.    "supplies default"
            existing == importedObject ifFalse:
[importedObject becomeForward: existing].
        ].


Does someone know why this piece of code should be necessary  ?   Of course, and I guess all agree, this shouldn't be in the core of ImageSegment but in other place. But anyway, I don't see a reason why this should be done. I vote for remove it.

I remember John saying something about the menus or fonts...but I am not sure.

What do you think ?

Mariano



_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Cycle dependency between ImageSegment and Multilingual

Marcus Denker-4

On Jan 29, 2010, at 4:59 PM, Mariano Martinez Peck wrote:

> Hi folks. Jannik pointed to me a cycle  dependency between ImageSegment and Multilingual.
>
> When you create a segment, there is a way to export the complete segment (segment in itself but also the outpointers) to a file, using SmartRefStream (ImageSegment >> writeForExportOn: )
>
> Now...you can load the that file in another image. When this is done, SmartRefStream calls the method comeFullyUpOnReload:
>
> So.... in ImageSegment >> comeFullyUpOnReload:    we a bigggggg method, which this lines (a part, of course):
>
> importedObject is just one of all the objects that are in the SmartRefStream.
>
>
>     (importedObject isKindOf: TTCFontSet) ifTrue: [
>             existing := TTCFontSet familyName:
> importedObject familyName
>                         pointSize:
> importedObject pointSize.    "supplies default"
>             existing == importedObject ifFalse:
> [importedObject becomeForward: existing].
>         ].
>
>
> Does someone know why this piece of code should be necessary  ?   Of course, and I guess all agree, this shouldn't be in the core of ImageSegment but in other place. But anyway, I don't see a reason why this should be done. I vote for remove it.
>


remove it.

I think this was added years back by Diego to make sure that truetype fonts would not lose the formatting.... seems to me that some change made truetype font morphs have
a reference from the outside so that the imagesegment would not serialize them correctly, and this was the a fix to fix in when loading.

        Marcus


--
Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.


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