Index: base/values.cc |
diff --git a/base/values.cc b/base/values.cc |
index 3b5bd38e9f4e77033300dfa27d6893172de31541..716fdf3230d3ba8397a3cf08cd9c78864bbcd7f5 100644 |
--- a/base/values.cc |
+++ b/base/values.cc |
@@ -610,13 +610,15 @@ bool ListValue::Remove(size_t index, Value** out_value) { |
return true; |
} |
-void ListValue::Remove(const Value& value) { |
+int ListValue::Remove(const Value& value) { |
for (ValueVector::iterator i(list_.begin()); i != list_.end(); ++i) { |
if ((*i)->Equals(&value)) { |
+ size_t index = i - list_.begin(); |
list_.erase(i); |
- break; |
+ return index; |
} |
} |
+ return -1; |
} |
void ListValue::Append(Value* in_value) { |
@@ -624,6 +626,15 @@ void ListValue::Append(Value* in_value) { |
list_.push_back(in_value); |
} |
+bool ListValue::Insert(size_t index, Value* in_value) { |
+ DCHECK(in_value); |
+ if (index < 0 || index > list_.size()) |
+ return false; |
+ |
+ list_.insert(list_.begin() + index, in_value); |
+ return true; |
+} |
+ |
Value* ListValue::DeepCopy() const { |
ListValue* result = new ListValue; |