Bug 395256 - Make nsJSID/IID/CID objects .equals method slightly faster, r=mrbkap sr=jst a=damons

This commit is contained in:
benjamin@smedbergs.us 2007-09-07 11:06:15 -07:00
Родитель af8233a824
Коммит 9006b49273
2 изменённых файлов: 7 добавлений и 22 удалений

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

@ -48,7 +48,7 @@ interface nsIJSID : nsISupports
[noscript] readonly attribute nsIDPtr id;
readonly attribute boolean valid;
boolean equals(in nsIJSID other);
boolean equals(in nsIDRef other);
void initialize(in string idString);

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

@ -138,22 +138,17 @@ nsJSID::GetValid(PRBool *aValid)
}
NS_IMETHODIMP
nsJSID::Equals(nsIJSID *other, PRBool *_retval)
nsJSID::Equals(REFNSIID other, PRBool *_retval)
{
if(!_retval)
return NS_ERROR_NULL_POINTER;
*_retval = PR_FALSE;
if(!other || mID.Equals(GetInvalidIID()))
if(mID.Equals(GetInvalidIID()))
return NS_OK;
nsID* otherID;
if(NS_SUCCEEDED(other->GetId(&otherID)))
{
*_retval = mID.Equals(*otherID);
nsMemory::Free(otherID);
}
*_retval = mID.Equals(other);
return NS_OK;
}
@ -433,22 +428,12 @@ NS_IMETHODIMP nsJSIID::GetValid(PRBool *aValid)
return NS_OK;
}
NS_IMETHODIMP nsJSIID::Equals(nsIJSID *other, PRBool *_retval)
NS_IMETHODIMP nsJSIID::Equals(const nsID &other, PRBool *_retval)
{
if(!_retval)
return NS_ERROR_NULL_POINTER;
*_retval = PR_FALSE;
if(!other)
return NS_OK;
nsID* otherID;
if(NS_SUCCEEDED(other->GetId(&otherID)))
{
mInfo->IsIID((nsIID*)otherID, _retval);
nsMemory::Free(otherID);
}
mInfo->IsIID((nsIID*) &other, _retval);
return NS_OK;
}
@ -679,7 +664,7 @@ NS_IMETHODIMP nsJSCID::GetId(nsID* *aId)
NS_IMETHODIMP nsJSCID::GetValid(PRBool *aValid)
{return mDetails.GetValid(aValid);}
NS_IMETHODIMP nsJSCID::Equals(nsIJSID *other, PRBool *_retval)
NS_IMETHODIMP nsJSCID::Equals(const nsID &other, PRBool *_retval)
{return mDetails.Equals(other, _retval);}
NS_IMETHODIMP nsJSCID::Initialize(const char *idString)