[Pharo-project] Cycle dependency between ImageSegment and Multilingual
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
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.
participants (2)
-
Marcus Denker -
Mariano Martinez Peck