Today I noticed a new bug; persisted TextMorphs were always materializing with the default font.
TTFontDescriptions are canonicalized into a class var, with each image potentially having a different set of fonts. Magma doesn't reinvent the wheel; employing the built-in System behavior, the DiskProxy mechanism to, upon materialization, lookup the font by name and, if not present, use the Default.
The problem was two-fold. First, "Ma object serialization" was incorrectly looking it up by #fullName, instead of #name, causing the Default font to always be used. Second, the base Squeak 3.9 image somehow lost all but one of the cached TTFontDescriptions from 3.8. The attached file-in will simply restore these (from allInstances, of which there are exactly 10 in 3.9).
After these two fixes, my TextMorph fonts are now correctly being identified and used.
Name: Ma object serialization-cmm.172 Author: cmm Time: 6 February 2008, 4:51:45 pm UUID: c0679f66-0835-d147-8881-58c38d8f8746
can be found on the MagmaTester project of SqueakSource.
This will, of course, be integrated into r41.
I am not sure if it fixes the problem I mentionned month ago with TextMorph persistency and text size. (See archvie for problem description and a patch)
Until recently I still have to patch Magma (r40)
Hilaire
Le mercredi 06 février 2008 à 21:42 -0500, Chris Muller a écrit :
Today I noticed a new bug; persisted TextMorphs were always materializing with the default font.
TTFontDescriptions are canonicalized into a class var, with each image potentially having a different set of fonts. Magma doesn't reinvent the wheel; employing the built-in System behavior, the DiskProxy mechanism to, upon materialization, lookup the font by name and, if not present, use the Default.
The problem was two-fold. First, "Ma object serialization" was incorrectly looking it up by #fullName, instead of #name, causing the Default font to always be used. Second, the base Squeak 3.9 image somehow lost all but one of the cached TTFontDescriptions from 3.8. The attached file-in will simply restore these (from allInstances, of which there are exactly 10 in 3.9).
After these two fixes, my TextMorph fonts are now correctly being identified and used.
Name: Ma object serialization-cmm.172 Author: cmm Time: 6 February 2008, 4:51:45 pm UUID: c0679f66-0835-d147-8881-58c38d8f8746
can be found on the MagmaTester project of SqueakSource.
This will, of course, be integrated into r41. _______________________________________________ Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
Hi Hilaire, I did review your change; you wanted to use #pointSize instead of #height. However, use of #height mirrors StrikeFont>>#objectForDataStream:, which is the mechanism used by SmartRefStream.
It's certainly possible Squeak has a bug in SmartRefStream persisting TextMorphs, but it's been around since 2000 so I'm not sure..
On Feb 7, 2008 9:11 AM, Hilaire Fernandes hilaire@ofset.org wrote:
I am not sure if it fixes the problem I mentionned month ago with TextMorph persistency and text size. (See archvie for problem description and a patch)
Until recently I still have to patch Magma (r40)
Hilaire
Le mercredi 06 février 2008 à 21:42 -0500, Chris Muller a écrit :
Today I noticed a new bug; persisted TextMorphs were always materializing with the default font.
TTFontDescriptions are canonicalized into a class var, with each image potentially having a different set of fonts. Magma doesn't reinvent the wheel; employing the built-in System behavior, the DiskProxy mechanism to, upon materialization, lookup the font by name and, if not present, use the Default.
The problem was two-fold. First, "Ma object serialization" was incorrectly looking it up by #fullName, instead of #name, causing the Default font to always be used. Second, the base Squeak 3.9 image somehow lost all but one of the cached TTFontDescriptions from 3.8. The attached file-in will simply restore these (from allInstances, of which there are exactly 10 in 3.9).
After these two fixes, my TextMorph fonts are now correctly being identified and used.
Name: Ma object serialization-cmm.172 Author: cmm Time: 6 February 2008, 4:51:45 pm UUID: c0679f66-0835-d147-8881-58c38d8f8746
can be found on the MagmaTester project of SqueakSource.
This will, of course, be integrated into r41. _______________________________________________ Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
magma@lists.squeakfoundation.org