| Index: chrome/browser/chromeos/extensions/default_app_order.cc
|
| diff --git a/chrome/browser/chromeos/extensions/default_app_order.cc b/chrome/browser/chromeos/extensions/default_app_order.cc
|
| index 855b5371b2ef0b6e976ae7a60d4cede8c0b7f9c1..e1df4f797398b6474fb8b55bf7cc759cb200a12e 100644
|
| --- a/chrome/browser/chromeos/extensions/default_app_order.cc
|
| +++ b/chrome/browser/chromeos/extensions/default_app_order.cc
|
| @@ -59,26 +59,26 @@ const char* const kDefaultAppOrder[] = {
|
| // Reads external ordinal json file and returned the parsed value. Returns NULL
|
| // if the file does not exist or could not be parsed properly. Caller takes
|
| // ownership of the returned value.
|
| -base::ListValue* ReadExternalOrdinalFile(const base::FilePath& path) {
|
| +scoped_ptr<base::ListValue> ReadExternalOrdinalFile(
|
| + const base::FilePath& path) {
|
| if (!base::PathExists(path))
|
| return NULL;
|
|
|
| JSONFileValueDeserializer deserializer(path);
|
| std::string error_msg;
|
| - base::Value* value = deserializer.Deserialize(NULL, &error_msg).release();
|
| + scoped_ptr<base::Value> value = deserializer.Deserialize(NULL, &error_msg);
|
| if (!value) {
|
| LOG(WARNING) << "Unable to deserialize default app ordinals json data:"
|
| << error_msg << ", file=" << path.value();
|
| return NULL;
|
| }
|
|
|
| - base::ListValue* ordinal_list_value = NULL;
|
| - if (value->GetAsList(&ordinal_list_value))
|
| - return ordinal_list_value;
|
| + scoped_ptr<base::ListValue> ordinal_list_value =
|
| + base::ListValue::From(value.Pass());
|
| + if (!ordinal_list_value)
|
| + LOG(WARNING) << "Expect a JSON list in file " << path.value();
|
|
|
| - LOG(WARNING) << "Expect a JSON list in file " << path.value();
|
| - // TODO(Olli Raula) possible memory leak http://crbug.com/543015
|
| - return NULL;
|
| + return ordinal_list_value;
|
| }
|
|
|
| std::string GetLocaleSpecificStringImpl(
|
| @@ -152,8 +152,8 @@ void ExternalLoader::Load() {
|
| base::FilePath ordinals_file;
|
| CHECK(PathService::Get(chromeos::FILE_DEFAULT_APP_ORDER, &ordinals_file));
|
|
|
| - scoped_ptr<base::ListValue> ordinals_value(
|
| - ReadExternalOrdinalFile(ordinals_file));
|
| + scoped_ptr<base::ListValue> ordinals_value =
|
| + ReadExternalOrdinalFile(ordinals_file);
|
| if (ordinals_value) {
|
| std::string locale = g_browser_process->GetApplicationLocale();
|
| for (size_t i = 0; i < ordinals_value->GetSize(); ++i) {
|
|
|