Bug 1477086: Change LocalStorageManager::CreateOrigin()'s return type to nsAutoCString, to benefit from RVO and avoid needless string copying. r?smaug
MozReview-Commit-ID: 1IALP0xgOqp
--- a/dom/storage/LocalStorageManager.cpp
+++ b/dom/storage/LocalStorageManager.cpp
@@ -125,17 +125,17 @@ CreateQuotaDBKey(nsIPrincipal* aPrincipa
aKey.Append(subdomainsDBKey);
return NS_OK;
}
} // namespace
// static
-nsCString
+nsAutoCString
LocalStorageManager::CreateOrigin(const nsACString& aOriginSuffix,
const nsACString& aOriginNoSuffix)
{
// Note: some hard-coded sqlite statements are dependent on the format this
// method returns. Changing this without updating those sqlite statements
// will cause malfunction.
nsAutoCString scope;
--- a/dom/storage/LocalStorageManager.h
+++ b/dom/storage/LocalStorageManager.h
@@ -40,18 +40,18 @@ public:
// Gets (but not ensures) cache for the given scope
LocalStorageCache* GetCache(const nsACString& aOriginSuffix,
const nsACString& aOriginNoSuffix);
// Returns object keeping usage cache for the scope.
already_AddRefed<StorageUsage>
GetOriginUsage(const nsACString& aOriginNoSuffix);
- static nsCString CreateOrigin(const nsACString& aOriginSuffix,
- const nsACString& aOriginNoSuffix);
+ static nsAutoCString CreateOrigin(const nsACString& aOriginSuffix,
+ const nsACString& aOriginNoSuffix);
private:
~LocalStorageManager();
// StorageObserverSink, handler to various chrome clearing notification
nsresult Observe(const char* aTopic,
const nsAString& aOriginAttributesPattern,
const nsACString& aOriginScope) override;