Bug 362597 - "Increased Rlk (leak) on balsa after landing of bug 354787". r=bsmedberg.

This commit is contained in:
bent.mozilla%gmail.com 2007-01-03 20:40:51 +00:00
Родитель bec6301e30
Коммит 4162af769c
3 изменённых файлов: 27 добавлений и 13 удалений

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

@ -67,6 +67,8 @@ enum {
#define CASE_MAP_CACHE_SIZE 0x40
#define CASE_MAP_CACHE_MASK 0x3F
nsCaseConversionImp2* gCaseConv = nsnull;
struct nsCompressedMap {
const PRUnichar *mTable;
PRUint32 mSize;
@ -149,17 +151,35 @@ struct nsCompressedMap {
}
};
NS_IMPL_THREADSAFE_ISUPPORTS1(nsCaseConversionImp2, nsICaseConversion)
static nsCompressedMap gUpperMap = {
NS_REINTERPRET_CAST(const PRUnichar*, &gToUpper[0]),
gToUpperItems
};
static nsCompressedMap gLowerMap = {
NS_REINTERPRET_CAST(const PRUnichar*, &gToLower[0]),
gToLowerItems
};
nsCaseConversionImp2* nsCaseConversionImp2::GetInstance()
{
if (!gCaseConv)
NS_NEWXPCOM(gCaseConv, nsCaseConversionImp2);
return gCaseConv;
}
NS_IMETHODIMP_(nsrefcnt) nsCaseConversionImp2::AddRef(void)
{
return (nsrefcnt)1;
}
NS_IMETHODIMP_(nsrefcnt) nsCaseConversionImp2::Release(void)
{
return (nsrefcnt)1;
}
NS_IMPL_THREADSAFE_QUERY_INTERFACE1(nsCaseConversionImp2, nsICaseConversion)
nsresult nsCaseConversionImp2::ToUpper(
PRUnichar aChar, PRUnichar* aReturn
)
@ -365,11 +385,3 @@ nsCaseConversionImp2::CaseInsensitiveCompare(const PRUnichar *aLeft,
}
return NS_OK;
}
nsresult NS_NewCaseConversion(nsICaseConversion** oResult)
{
NS_ENSURE_ARG_POINTER(oResult);
NS_NEWXPCOM(*oResult, nsCaseConversionImp2);
NS_IF_ADDREF(*oResult);
return *oResult ? NS_OK :NS_ERROR_OUT_OF_MEMORY;
}

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

@ -43,14 +43,13 @@
#include "nsICaseConversion.h"
nsresult NS_NewCaseConversion(nsISupports** oResult);
class nsCaseConversionImp2 : public nsICaseConversion {
NS_DECL_ISUPPORTS
public:
virtual ~nsCaseConversionImp2() { };
static nsCaseConversionImp2* GetInstance();
NS_IMETHOD ToUpper(PRUnichar aChar, PRUnichar* aReturn);
@ -68,4 +67,6 @@ public:
NS_IMETHOD CaseInsensitiveCompare(const PRUnichar* aLeft, const PRUnichar* aRight, PRUint32 aLength, PRInt32 *aResult);
};
extern nsCaseConversionImp2* gCaseConv;
#endif

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

@ -80,7 +80,8 @@ CreateNew##_name(nsISupports* aOuter, REFNSIID aIID, void **aResult) \
UNICHARUTIL_MAKE_CTOR(HankakuToZenkaku)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsCaseConversionImp2)
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsCaseConversionImp2,
nsCaseConversionImp2::GetInstance)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsEntityConverter)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsSaveAsCharset)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeNormalizer)