Bug 1295565 - Don't create URIs if we don't have to. r=mayhemer
MozReview-Commit-ID: 86tc52aqBH2
--- a/netwerk/base/Predictor.cpp
+++ b/netwerk/base/Predictor.cpp
@@ -1648,17 +1648,17 @@ Predictor::LearnInternal(PredictorLearnR
MOZ_ASSERT(keysToOperateOn.Length() == valuesToOperateOn.Length());
for (size_t i = 0; i < keysToOperateOn.Length(); ++i) {
const char *key = keysToOperateOn[i].BeginReading();
const char *value = valuesToOperateOn[i].BeginReading();
nsCOMPtr<nsIURI> uri;
uint32_t hitCount, lastHit, flags;
- if (!ParseMetaDataEntry(key, value, getter_AddRefs(uri), hitCount, lastHit, flags)) {
+ if (!ParseMetaDataEntry(nullptr, value, nullptr, hitCount, lastHit, flags)) {
// This failed, get rid of it so we don't waste space
entry->SetMetaDataElement(key, nullptr);
continue;
}
UpdateRollingLoadCount(entry, flags, key, hitCount, lastHit);
}
} else {
PREDICTOR_LOG((" nothing to do for toplevel"));
@@ -1688,35 +1688,31 @@ Predictor::SpaceCleaner::OnMetaDataEleme
{
MOZ_ASSERT(NS_IsMainThread());
if (!IsURIMetadataElement(key)) {
// This isn't a bit of metadata we care about
return NS_OK;
}
- nsCOMPtr<nsIURI> parsedURI;
uint32_t hitCount, lastHit, flags;
- bool ok = mPredictor->ParseMetaDataEntry(key, value,
- getter_AddRefs(parsedURI),
+ bool ok = mPredictor->ParseMetaDataEntry(nullptr, value, nullptr,
hitCount, lastHit, flags);
if (!ok) {
// Couldn't parse this one, just get rid of it
nsCString nsKey;
nsKey.AssignASCII(key);
mLongKeysToDelete.AppendElement(nsKey);
return NS_OK;
}
- nsCString uri;
- nsresult rv = parsedURI->GetAsciiSpec(uri);
+ nsCString uri(key + (sizeof(META_DATA_PREFIX) - 1));
uint32_t uriLength = uri.Length();
- if (NS_SUCCEEDED(rv) &&
- uriLength > mPredictor->mMaxURILength) {
+ if (uriLength > mPredictor->mMaxURILength) {
// Default to getting rid of URIs that are too long and were put in before
// we had our limit on URI length, in order to free up some space.
nsCString nsKey;
nsKey.AssignASCII(key);
mLongKeysToDelete.AppendElement(nsKey);
return NS_OK;
}