From 6cacaeaa9f4e858f9f4f05e1171d93c8f4faba8a Mon Sep 17 00:00:00 2001 From: Christof Pintaske Date: Fri, 27 Apr 2001 12:14:54 +0000 Subject: #86042# allocate fontdata on heap since it is not deap-copied but referenced --- vcl/unx/source/gdi/salgdi3.cxx | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'vcl') diff --git a/vcl/unx/source/gdi/salgdi3.cxx b/vcl/unx/source/gdi/salgdi3.cxx index e531730a1b8f..4517197790a7 100644 --- a/vcl/unx/source/gdi/salgdi3.cxx +++ b/vcl/unx/source/gdi/salgdi3.cxx @@ -2,9 +2,9 @@ * * $RCSfile: salgdi3.cxx,v $ * - * $Revision: 1.53 $ + * $Revision: 1.54 $ * - * last change: $Author: pl $ $Date: 2001-04-25 16:05:36 $ + * last change: $Author: cp $ $Date: 2001-04-27 13:14:54 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -415,7 +415,7 @@ class FontFallback ::psp::fontID ImplFallbackFor () const ; ::psp::fontID mnId; - void* mpSysData; + ImplFontData maFallbackFontData; public: FontFallback (); @@ -439,9 +439,9 @@ FontFallback::equalItalic (psp::italic::type from, psp::italic::type to) } FontFallback::FontFallback () : - mnId (-1), - mpSysData (NULL) + mnId (-1) { + maFallbackFontData.mpSysData = NULL; // get static fontlist ::std::list< psp::fontID > aList; const psp::PrintFontManager& rMgr = psp::PrintFontManager::get(); @@ -468,28 +468,27 @@ FontFallback::FontFallback () : if (mnId != -1) { GlyphCache& rGC = GlyphCache::GetInstance(); - mpSysData = rGC.GetFontHandle (mnId); - if (mpSysData == NULL) + void* pSysData = rGC.GetFontHandle (mnId); + if( (maFallbackFontData.mpSysData = pSysData) == NULL) mnId = -1; } } + ServerFont* FontFallback::ImplFallbackFor (const ImplFontSelectData *pData) const { - if (mpSysData == NULL) + if (mnId == -1 ) return NULL; ImplFontSelectData aFaksimile; - ImplFontData aFaksimileData; aFaksimile.mnHeight = pData->mnHeight; aFaksimile.mnWidth = pData->mnWidth; aFaksimile.mnOrientation = pData->mnOrientation; aFaksimile.mbVertical = pData->mbVertical; aFaksimile.mbNonAntialiased = pData->mbNonAntialiased; - aFaksimile.mpFontData = &aFaksimileData; - aFaksimile.mpFontData->mpSysData = mpSysData; + aFaksimile.mpFontData = const_cast(&maFallbackFontData); return GlyphCache::GetInstance().CacheFont (aFaksimile); } -- cgit