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.