зеркало из https://github.com/mozilla/gecko-dev.git
fix bug 110115
fix the toolbar garbage problem after we change font prf. r=nhotta sr=sfraser
This commit is contained in:
Родитель
60da5dabed
Коммит
71ab3ad793
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче