fix the toolbar garbage problem after we change font prf. r=nhotta sr=sfraser
This commit is contained in:
ftang%netscape.com 2002-03-27 04:19:36 +00:00
Родитель 60da5dabed
Коммит 71ab3ad793
5 изменённых файлов: 7 добавлений и 41 удалений

Просмотреть файл

@ -68,6 +68,9 @@ nsFontMetricsMac :: ~nsFontMetricsMac()
mContext->FontMetricsDeleted(this);
mContext = nsnull;
}
if (mFontMapping) {
delete mFontMapping;
}
}
//------------------------------------------------------------------------
@ -124,7 +127,7 @@ nsUnicodeFontMappingMac* nsFontMetricsMac::GetUnicodeFontMapping()
langGroup.Assign(NS_LITERAL_STRING("ja"));
nsString lang;
mFontMapping = nsUnicodeFontMappingMac::GetCachedInstance(mFont, mContext, langGroup, lang);
mFontMapping = new nsUnicodeFontMappingMac(mFont, mContext, langGroup, lang);
}
return mFontMapping;

Просмотреть файл

@ -305,7 +305,9 @@ nsUnicodeFontMappingMac::nsUnicodeFontMappingMac(
nsFont* aFont, nsIDeviceContext *aDeviceContext,
const nsString& aLangGroup, const nsString& aLANG)
{
PRInt32 i;
PRInt32 i;
if (!gUtil)
gUtil = nsUnicodeMappingUtil::GetSingleton();
for(i = kUnicodeBlockFixedScriptMax ; i < kUnicodeBlockSize; i++)
mPrivBlockToScript[i - kUnicodeBlockFixedScriptMax] = BAD_SCRIPT;
for(i = 0 ; i < smPseudoTotalScripts; i++)
@ -317,31 +319,6 @@ nsUnicodeFontMappingMac::nsUnicodeFontMappingMac(
InitDefaultScriptFonts();
}
//--------------------------------------------------------------------------
nsUnicodeFontMappingMac* nsUnicodeFontMappingMac::GetCachedInstance(
nsFont* aFont, nsIDeviceContext *aDeviceContext, const nsString& aLangGroup, const nsString& aLANG)
{
if(! gUtil)
gUtil = nsUnicodeMappingUtil::GetSingleton();
nsUnicodeFontMappingCache* fontMappingCache = gUtil->GetFontMappingCache();
NS_ASSERTION(fontMappingCache, "Should have a fontMappingCache here");
if (!fontMappingCache) return nsnull;
nsUnicodeFontMappingMac* obj = nsnull;
nsAutoString key(aFont->name);
key.Append(NS_LITERAL_STRING(":"));
key.Append(aLangGroup);
key.Append(NS_LITERAL_STRING(":"));
key.Append(aLANG);
if(! fontMappingCache->Get ( key, &obj )){
obj = new nsUnicodeFontMappingMac(aFont, aDeviceContext, aLangGroup, aLANG);
if( obj )
fontMappingCache->Set ( key, obj);
}
NS_PRECONDITION(nsnull != obj, "out of memory");
return obj;
}
//--------------------------------------------------------------------------
PRBool nsUnicodeFontMappingMac::Equals(const nsUnicodeFontMappingMac& aMap)

Просмотреть файл

@ -56,10 +56,6 @@ public:
}
PRBool Equals(const nsUnicodeFontMappingMac& anther);
static nsUnicodeFontMappingMac* GetCachedInstance(nsFont* aFont, nsIDeviceContext *aDeviceContext,
const nsString& aLangGroup, const nsString& aLANG);
protected:
PRBool ScriptMapInitComplete();
void InitByFontFamily(nsFont* aFont, nsIDeviceContext *aDeviceContext);

Просмотреть файл

@ -40,7 +40,6 @@
#include "nsIServiceManager.h"
#include "nsTextFormatter.h"
#include "nsUnicodeMappingUtil.h"
#include "nsUnicodeFontMappingCache.h"
#include "nsDeviceContextMac.h"
#include "nsReadableUtils.h"
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
@ -85,7 +84,6 @@ void nsUnicodeMappingUtil::Init()
InitFromPref();
InitScriptFontMapping();
InitBlockToScriptMapping(); // this must be called after InitScriptEnabled()
mCache = new nsUnicodeFontMappingCache();
}
void nsUnicodeMappingUtil::CleanUp()
{
@ -95,12 +93,6 @@ void nsUnicodeMappingUtil::CleanUp()
delete mGenericFontMapping[i][j];
}
}
if (mCache)
{
delete mCache;
mCache = nsnull;
}
}
//--------------------------------------------------------------------------

Просмотреть файл

@ -86,7 +86,6 @@ public:
else
return mGenericFontMapping[aScript][aType];
}
inline nsUnicodeFontMappingCache* GetFontMappingCache() { return mCache; };
ScriptCode MapLangGroupToScriptCode(const char* aLangGroup);
static nsUnicodeMappingUtil* GetSingleton();
@ -107,7 +106,6 @@ private:
PRUint32 mScriptEnabled;
short mScriptFontMapping[smPseudoTotalScripts];
PRInt8 mBlockToScriptMapping[kUnicodeBlockSize];
nsUnicodeFontMappingCache* mCache;
nsCOMPtr<nsIPref> mPref;
static nsUnicodeMappingUtil* gSingleton;