diff options
Diffstat (limited to 'base/values.cc')
-rw-r--r-- | base/values.cc | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/base/values.cc b/base/values.cc index f8e3729..3b5bd38 100644 --- a/base/values.cc +++ b/base/values.cc @@ -497,11 +497,8 @@ ListValue::~ListValue() { } void ListValue::Clear() { - ValueVector::iterator list_iterator = list_.begin(); - while (list_iterator != list_.end()) { - delete *list_iterator; - ++list_iterator; - } + for (ValueVector::iterator i(list_.begin()); i != list_.end(); ++i) + delete *i; list_.clear(); } @@ -609,13 +606,19 @@ bool ListValue::Remove(size_t index, Value** out_value) { else delete list_[index]; - ValueVector::iterator entry = list_.begin(); - entry += index; - - list_.erase(entry); + list_.erase(list_.begin() + index); return true; } +void ListValue::Remove(const Value& value) { + for (ValueVector::iterator i(list_.begin()); i != list_.end(); ++i) { + if ((*i)->Equals(&value)) { + list_.erase(i); + break; + } + } +} + void ListValue::Append(Value* in_value) { DCHECK(in_value); list_.push_back(in_value); @@ -624,11 +627,8 @@ void ListValue::Append(Value* in_value) { Value* ListValue::DeepCopy() const { ListValue* result = new ListValue; - ValueVector::const_iterator current_entry = list_.begin(); - while (current_entry != list_.end()) { - result->Append((*current_entry)->DeepCopy()); - ++current_entry; - } + for (ValueVector::const_iterator i(list_.begin()); i != list_.end(); ++i) + result->Append((*i)->DeepCopy()); return result; } |