зеркало из https://github.com/mozilla/gecko-dev.git
Fixed GetFontMetrics API to AddRef
This commit is contained in:
Родитель
c7a4a428c9
Коммит
9d5509b391
|
@ -548,6 +548,7 @@ const nsFont& nsRenderingContextUnix :: GetFont()
|
|||
|
||||
nsIFontMetrics* nsRenderingContextUnix :: GetFontMetrics()
|
||||
{
|
||||
NS_IF_ADDREF(mFontMetrics);
|
||||
return mFontMetrics;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,48 @@ nsFontMetricsWin :: ~nsFontMetricsWin()
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef LEAK_DEBUG
|
||||
nsrefcnt nsFontMetricsWin :: AddRef()
|
||||
{
|
||||
NS_PRECONDITION(mRefCnt != 0, "resurrecting a dead object");
|
||||
return ++mRefCnt;
|
||||
}
|
||||
|
||||
nsrefcnt nsFontMetricsWin :: Release()
|
||||
{
|
||||
NS_PRECONDITION(mRefCnt != 0, "too many release's");
|
||||
if (--mRefCnt == 0) {
|
||||
delete this;
|
||||
}
|
||||
return mRefCnt;
|
||||
}
|
||||
|
||||
nsresult nsFontMetricsWin :: QueryInterface(REFNSIID aIID, void** aInstancePtr)
|
||||
{
|
||||
if (NULL == aInstancePtr) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
|
||||
*aInstancePtr = NULL;
|
||||
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
static NS_DEFINE_IID(kClassIID, kIFontMetricsIID);
|
||||
if (aIID.Equals(kClassIID)) {
|
||||
*aInstancePtr = (void*) this;
|
||||
mRefCnt++;
|
||||
return NS_OK;
|
||||
}
|
||||
if (aIID.Equals(kISupportsIID)) {
|
||||
*aInstancePtr = (void*) ((nsISupports*)this);
|
||||
AddRef();
|
||||
return NS_OK;
|
||||
}
|
||||
return NS_NOINTERFACE;
|
||||
}
|
||||
#else
|
||||
NS_IMPL_ISUPPORTS(nsFontMetricsWin, kIFontMetricsIID)
|
||||
#endif
|
||||
|
||||
|
||||
// Note: The presentation context has a reference to this font
|
||||
// metrics, therefore avoid circular references by not AddRef'ing the
|
||||
|
|
|
@ -583,6 +583,7 @@ const nsFont& nsRenderingContextWin :: GetFont()
|
|||
|
||||
nsIFontMetrics* nsRenderingContextWin :: GetFontMetrics()
|
||||
{
|
||||
NS_IF_ADDREF(mFontMetrics);
|
||||
return mFontMetrics;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче