| Index: chrome/installer/util/delete_reg_value_work_item.cc
|
| diff --git a/chrome/installer/util/delete_reg_value_work_item.cc b/chrome/installer/util/delete_reg_value_work_item.cc
|
| index f111f93f9b134f8f9c51e2ab7151caf6c47496e2..b5b0b189ada3ee5a5812810914983d3bbb5a043e 100644
|
| --- a/chrome/installer/util/delete_reg_value_work_item.cc
|
| +++ b/chrome/installer/util/delete_reg_value_work_item.cc
|
| @@ -29,8 +29,12 @@
|
| DeleteRegValueWorkItem::~DeleteRegValueWorkItem() {
|
| }
|
|
|
| -bool DeleteRegValueWorkItem::DoImpl() {
|
| - DCHECK_EQ(DELETE_VALUE, status_);
|
| +bool DeleteRegValueWorkItem::Do() {
|
| + if (status_ != DELETE_VALUE) {
|
| + // we already did something.
|
| + LOG(ERROR) << "multiple calls to Do()";
|
| + return false;
|
| + }
|
|
|
| status_ = VALUE_UNCHANGED;
|
|
|
| @@ -44,8 +48,8 @@
|
| result = key.ReadValue(value_name_.c_str(), NULL, &size, &type);
|
|
|
| if (result == ERROR_FILE_NOT_FOUND) {
|
| - VLOG(1) << "(delete value) Key: " << key_path_
|
| - << " or Value: " << value_name_ << " does not exist.";
|
| + LOG(INFO) << "(delete value) Key: " << key_path_ << " or Value: "
|
| + << value_name_ << " does not exist.";
|
| status_ = VALUE_NOT_FOUND;
|
| return true;
|
| }
|
| @@ -74,10 +78,9 @@
|
| return true;
|
| }
|
|
|
| -void DeleteRegValueWorkItem::RollbackImpl() {
|
| - DCHECK_NE(DELETE_VALUE, status_);
|
| - DCHECK_NE(VALUE_ROLLED_BACK, status_);
|
| -
|
| +void DeleteRegValueWorkItem::Rollback() {
|
| + if (status_ == DELETE_VALUE || status_ == VALUE_ROLLED_BACK)
|
| + return;
|
| if (status_ == VALUE_UNCHANGED || status_ == VALUE_NOT_FOUND) {
|
| status_ = VALUE_ROLLED_BACK;
|
| VLOG(1) << "rollback: setting unchanged, nothing to do";
|
| @@ -85,8 +88,6 @@
|
| }
|
|
|
| // At this point only possible state is VALUE_DELETED.
|
| - DCHECK_EQ(VALUE_DELETED, status_);
|
| -
|
| RegKey key;
|
| LONG result = key.Open(predefined_root_,
|
| key_path_.c_str(),
|
|
|