summaryrefslogtreecommitdiffstats
path: root/extensions/utility/unpacker.cc
diff options
context:
space:
mode:
authorreillyg <reillyg@chromium.org>2015-09-10 17:25:54 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-11 00:26:37 +0000
commit259c0a3f44bdd8130c5d835e9f596624a079fbd1 (patch)
tree8c69523a7745aa71e6d67cdedad5b5ce0336b4a9 /extensions/utility/unpacker.cc
parent9a1461f5cbacfc7d5c40ac2cd2cc0ec104e9b39c (diff)
downloadchromium_src-259c0a3f44bdd8130c5d835e9f596624a079fbd1.zip
chromium_src-259c0a3f44bdd8130c5d835e9f596624a079fbd1.tar.gz
chromium_src-259c0a3f44bdd8130c5d835e9f596624a079fbd1.tar.bz2
Add scoped_ptr-safe base::Value to Dictionary/List conversion functions.
This change adds two static From() functions to the DictionaryValue and ListValue classes which take a scoped_ptr to a Value and either convert it to a scoped_ptr to a DictionaryValue or ListValue, or return nullptr. These are intended to replace the existing pattern, make_scoped_ptr(static_cast<base::DictionaryValue*>(value.release())) with the shorter and safer alternative, base::DictionaryValue::From(value.Pass()) Instances of this pattern in //extensions have been converted as examples. Review URL: https://codereview.chromium.org/1308013005 Cr-Commit-Position: refs/heads/master@{#348294}
Diffstat (limited to 'extensions/utility/unpacker.cc')
-rw-r--r--extensions/utility/unpacker.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/extensions/utility/unpacker.cc b/extensions/utility/unpacker.cc
index 2cd8f01..6e28a49b 100644
--- a/extensions/utility/unpacker.cc
+++ b/extensions/utility/unpacker.cc
@@ -112,7 +112,7 @@ Unpacker::Unpacker(const base::FilePath& working_dir,
Unpacker::~Unpacker() {
}
-base::DictionaryValue* Unpacker::ReadManifest() {
+scoped_ptr<base::DictionaryValue> Unpacker::ReadManifest() {
base::FilePath manifest_path = extension_dir_.Append(kManifestFilename);
if (!base::PathExists(manifest_path)) {
SetError(errors::kInvalidManifest);
@@ -132,7 +132,7 @@ base::DictionaryValue* Unpacker::ReadManifest() {
return NULL;
}
- return static_cast<base::DictionaryValue*>(root.release());
+ return base::DictionaryValue::From(root.Pass());
}
bool Unpacker::ReadAllMessageCatalogs(const std::string& default_locale) {
@@ -161,7 +161,7 @@ bool Unpacker::ReadAllMessageCatalogs(const std::string& default_locale) {
bool Unpacker::Run() {
// Parse the manifest.
- parsed_manifest_.reset(ReadManifest());
+ parsed_manifest_ = ReadManifest();
if (!parsed_manifest_.get())
return false; // Error was already reported.
@@ -253,8 +253,8 @@ bool Unpacker::AddDecodedImage(const base::FilePath& path) {
bool Unpacker::ReadMessageCatalog(const base::FilePath& message_path) {
std::string error;
JSONFileValueDeserializer deserializer(message_path);
- scoped_ptr<base::DictionaryValue> root(static_cast<base::DictionaryValue*>(
- deserializer.Deserialize(NULL, &error)));
+ scoped_ptr<base::DictionaryValue> root = base::DictionaryValue::From(
+ make_scoped_ptr(deserializer.Deserialize(NULL, &error)));
if (!root.get()) {
base::string16 messages_file = message_path.LossyDisplayName();
if (error.empty()) {