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(), |