Index: extensions/common/extension_api.cc |
diff --git a/extensions/common/extension_api.cc b/extensions/common/extension_api.cc |
index 8430a2fb117dead341b92dc8d8790f75196aeffc..4b49a83f8e5f70492f0aee34901739c1b85f1ce7 100644 |
--- a/extensions/common/extension_api.cc |
+++ b/extensions/common/extension_api.cc |
@@ -219,16 +219,16 @@ void ExtensionAPI::LoadSchema(const std::string& name, |
extensions::ExtensionsClient::Get(); |
DCHECK(extensions_client); |
while (!schema_list->empty()) { |
- base::DictionaryValue* schema = NULL; |
+ std::unique_ptr<base::DictionaryValue> schema; |
{ |
- std::unique_ptr<base::Value> value; |
- schema_list->Remove(schema_list->GetSize() - 1, &value); |
- CHECK(value.release()->GetAsDictionary(&schema)); |
+ std::unique_ptr<base::Value> val; |
+ schema_list->Erase(schema_list->begin(), &val); |
+ schema = base::DictionaryValue::From(std::move(val)); |
+ CHECK(schema); |
} |
- |
CHECK(schema->GetString("namespace", &schema_namespace)); |
- PrefixWithNamespace(schema_namespace, schema); |
- schemas_[schema_namespace] = make_linked_ptr(schema); |
+ PrefixWithNamespace(schema_namespace, schema.get()); |
+ schemas_[schema_namespace] = std::move(schema); |
if (!extensions_client->IsAPISchemaGenerated(schema_namespace)) |
CHECK_EQ(1u, unloaded_schemas_.erase(schema_namespace)); |
} |