Bug 1295565 - Don't create URIs if we don't have to. r=mayhemer draft
authorNicholas Hurley <hurley@todesschaf.org>
Tue, 16 Aug 2016 13:41:15 -0700
changeset 410286 2444d2f97716f1b45347fd6472eed7a35ce31111
parent 400825 054d4856cea6150a6638e5daf7913713281af97d
child 530556 d52021ad1e36a253690889114354d383653ca13e
push id28712
push userbmo:hurley@todesschaf.org
push dateTue, 06 Sep 2016 16:10:44 +0000
reviewersmayhemer
bugs1295565
milestone51.0a1
Bug 1295565 - Don't create URIs if we don't have to. r=mayhemer MozReview-Commit-ID: 86tc52aqBH2
netwerk/base/Predictor.cpp
--- 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;
   }