Fixed GetFontMetrics API to AddRef

This commit is contained in:
kipp%netscape.com 1998-07-29 03:57:27 +00:00
Родитель c7a4a428c9
Коммит 9d5509b391
3 изменённых файлов: 43 добавлений и 0 удалений

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

@ -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;
}