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 |
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 |
Free forum by Nabble | Edit this page |