Change the signature of JSONReader::Read() and related
methods to be more friendly to use with scoped_ptr. Change
all the callsites.

Review URL: http://codereview.chromium.org/16270

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7486 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc
index 32c2fb2..17bdcc8d 100644
--- a/chrome/browser/autocomplete/search_provider.cc
+++ b/chrome/browser/autocomplete/search_provider.cc
@@ -129,13 +129,14 @@
     }
   }
 
-  JSONStringValueSerializer deserializer(json_data);
-  deserializer.set_allow_trailing_comma(true);
-  Value* root_val = NULL;
-  have_suggest_results_ = status.is_success() && (response_code == 200) &&
-      deserializer.Deserialize(&root_val, NULL) &&
-      ParseSuggestResults(root_val);
-  delete root_val;
+  if (status.is_success() && response_code == 200) {
+    JSONStringValueSerializer deserializer(json_data);
+    deserializer.set_allow_trailing_comma(true);
+    scoped_ptr<Value> root_val(deserializer.Deserialize(NULL));
+    have_suggest_results_ =
+        root_val.get() && ParseSuggestResults(root_val.get());
+  }
+
   ConvertResultsToAutocompleteMatches();
   listener_->OnProviderUpdate(!suggest_results_.empty());
 }