Index: tools/json_schema_compiler/util.cc |
diff --git a/tools/json_schema_compiler/util.cc b/tools/json_schema_compiler/util.cc |
index 468df83b297ab0407c3983e4cdf5eb109ef78fd2..9d8abd5cdab51e75e72ce5e9dc54089e8109d1fa 100644 |
--- a/tools/json_schema_compiler/util.cc |
+++ b/tools/json_schema_compiler/util.cc |
@@ -2,6 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "tools/json_schema_compiler/any.h" |
#include "tools/json_schema_compiler/util.h" |
#include "base/values.h" |
@@ -26,11 +27,21 @@ bool GetItemFromList(const ListValue& from, int index, std::string* out) { |
} |
bool GetItemFromList(const ListValue& from, int index, |
+ linked_ptr<any::Any>* out) { |
+ Value* value = NULL; |
+ if (!from.Get(index, &value)) |
+ return false; |
+ scoped_ptr<any::Any> any_object(new any::Any()); |
+ any_object->Init(*value); |
+ *out = linked_ptr<any::Any>(any_object.release()); |
+ return true; |
+} |
+ |
+bool GetItemFromList(const ListValue& from, int index, |
linked_ptr<base::DictionaryValue>* out) { |
DictionaryValue* dict = NULL; |
- if (!from.GetDictionary(index, &dict)) { |
+ if (!from.GetDictionary(index, &dict)) |
return false; |
- } |
*out = linked_ptr<DictionaryValue>(dict->DeepCopy()); |
return true; |
} |
@@ -51,6 +62,10 @@ void AddItemToList(const linked_ptr<base::DictionaryValue>& from, |
base::ListValue* out) { |
out->Append(static_cast<Value*>(from->DeepCopy())); |
} |
+void AddItemToList(const linked_ptr<any::Any>& from, |
+ base::ListValue* out) { |
+ out->Append(from->value().DeepCopy()); |
+} |
} // namespace api_util |
} // namespace extensions |