From 3e75190dc9f452d76cb2be4f909d5804943ab84b Mon Sep 17 00:00:00 2001 From: Neil Rashbrook Date: Sun, 29 Mar 2009 12:47:06 +0100 Subject: [PATCH] Bug 485605 Clean up JS ID code and fix allocators r=mrbkap sr=jag --- js/src/xpconnect/src/xpcjsid.cpp | 37 ++++++++++---------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/js/src/xpconnect/src/xpcjsid.cpp b/js/src/xpconnect/src/xpcjsid.cpp index 3a7f3dcb242e..473c361369fc 100644 --- a/js/src/xpconnect/src/xpcjsid.cpp +++ b/js/src/xpconnect/src/xpcjsid.cpp @@ -58,9 +58,9 @@ nsJSID::nsJSID() nsJSID::~nsJSID() { if(mNumber && mNumber != gNoString) - PR_Free(mNumber); + NS_Free(mNumber); if(mName && mName != gNoString) - PR_Free(mName); + NS_Free(mName); } void nsJSID::Reset() @@ -68,9 +68,9 @@ void nsJSID::Reset() mID = GetInvalidIID(); if(mNumber && mNumber != gNoString) - PR_Free(mNumber); + NS_Free(mNumber); if(mName && mName != gNoString) - PR_Free(mName); + NS_Free(mName); mNumber = mName = nsnull; } @@ -80,12 +80,8 @@ nsJSID::SetName(const char* name) { NS_ASSERTION(!mName || mName == gNoString ,"name already set"); NS_ASSERTION(name,"null name"); - int len = strlen(name)+1; - mName = (char*)PR_Malloc(len); - if(!mName) - return PR_FALSE; - memcpy(mName, name, len); - return PR_TRUE; + mName = NS_strdup(name); + return mName ? PR_TRUE : PR_FALSE; } NS_IMETHODIMP @@ -97,7 +93,7 @@ nsJSID::GetName(char * *aName) if(!NameIsSet()) SetNameToNoString(); NS_ASSERTION(mName, "name not set"); - *aName = (char*) nsMemory::Clone(mName, strlen(mName)+1); + *aName = NS_strdup(mName); return *aName ? NS_OK : NS_ERROR_OUT_OF_MEMORY; } @@ -113,7 +109,7 @@ nsJSID::GetNumber(char * *aNumber) mNumber = gNoString; } - *aNumber = (char*) nsMemory::Clone(mNumber, strlen(mNumber)+1); + *aNumber = NS_strdup(mNumber); return *aNumber ? NS_OK : NS_ERROR_OUT_OF_MEMORY; } @@ -186,20 +182,9 @@ nsJSID::InitWithName(const nsID& id, const char *nameString) NS_IMETHODIMP nsJSID::ToString(char **_retval) { - if(mName != gNoString) - { - char* str; - if(NS_SUCCEEDED(GetName(&str))) - { - if(mName != gNoString) - { - *_retval = str; - return NS_OK; - } - else - nsMemory::Free(str); - } - } + if(mName && mName != gNoString) + return GetName(_retval); + return GetNumber(_retval); }