Index: utils.h |
diff --git a/utils.h b/utils.h |
index 86ccfb71a7f0fa11b81c473021f114367471a749..74711a84e8bb0723b8b7a4c092acf948e6337626 100644 |
--- a/utils.h |
+++ b/utils.h |
@@ -294,15 +294,20 @@ class ScopedExt2fsCloser { |
// Utility class to delete a file when it goes out of scope. |
class ScopedPathUnlinker { |
public: |
- explicit ScopedPathUnlinker(const std::string& path) : path_(path) {} |
+ explicit ScopedPathUnlinker(const std::string& path) |
+ : path_(path), |
+ should_remove_(true) {} |
~ScopedPathUnlinker() { |
- if (unlink(path_.c_str()) < 0) { |
+ if (should_remove_ && unlink(path_.c_str()) < 0) { |
std::string err_message = strerror(errno); |
LOG(ERROR) << "Unable to unlink path " << path_ << ": " << err_message; |
} |
} |
+ void set_should_remove(bool should_remove) { should_remove_ = should_remove; } |
+ |
private: |
const std::string path_; |
+ bool should_remove_; |
DISALLOW_COPY_AND_ASSIGN(ScopedPathUnlinker); |
}; |