diff --git a/chrome/src/nsChromeProtocolHandler.cpp b/chrome/src/nsChromeProtocolHandler.cpp index ff58f09b3a84..3a087675fd3a 100644 --- a/chrome/src/nsChromeProtocolHandler.cpp +++ b/chrome/src/nsChromeProtocolHandler.cpp @@ -90,18 +90,14 @@ nsChromeProtocolHandler::MakeAbsolute(const char* aSpec, nsIURI* aBaseURI, char* *result) { - nsresult rv; + // XXX optimize this to not needlessly construct the URL + nsresult rv; nsIURI* url; - if (aBaseURI) - rv = aBaseURI->Clone(&url); - else - rv = nsComponentManager::CreateInstance(kStandardURLCID, nsnull, nsCOMTypeInfo::GetIID(), (void**)&url); + rv = NewURI(aSpec, aBaseURI, &url); if (NS_FAILED(rv)) return rv; - rv = url->SetSpec((char*)aSpec); - - url->GetSpec(result); + rv = url->GetSpec(result); NS_RELEASE(url); return rv; } diff --git a/rdf/chrome/src/nsChromeProtocolHandler.cpp b/rdf/chrome/src/nsChromeProtocolHandler.cpp index ff58f09b3a84..3a087675fd3a 100644 --- a/rdf/chrome/src/nsChromeProtocolHandler.cpp +++ b/rdf/chrome/src/nsChromeProtocolHandler.cpp @@ -90,18 +90,14 @@ nsChromeProtocolHandler::MakeAbsolute(const char* aSpec, nsIURI* aBaseURI, char* *result) { - nsresult rv; + // XXX optimize this to not needlessly construct the URL + nsresult rv; nsIURI* url; - if (aBaseURI) - rv = aBaseURI->Clone(&url); - else - rv = nsComponentManager::CreateInstance(kStandardURLCID, nsnull, nsCOMTypeInfo::GetIID(), (void**)&url); + rv = NewURI(aSpec, aBaseURI, &url); if (NS_FAILED(rv)) return rv; - rv = url->SetSpec((char*)aSpec); - - url->GetSpec(result); + rv = url->GetSpec(result); NS_RELEASE(url); return rv; }