[demangler] Simplify SwapAndRestore
authorNathan Sidwell <nathan@acm.org>
Mon, 28 Feb 2022 20:04:37 +0000 (12:04 -0800)
committerNathan Sidwell <nathan@acm.org>
Tue, 1 Mar 2022 12:37:24 +0000 (04:37 -0800)
The SwapAndRestore class is over engineered.  Nothing makes use of the
early restoration machinery.  Let's just remove that cognative burdon.

Reviewed By: ChuanqiXu

Differential Revision: https://reviews.llvm.org/D120673

libcxxabi/src/demangle/Utility.h
llvm/include/llvm/Demangle/Utility.h

index 21e5efb..f8190b8 100644 (file)
@@ -163,7 +163,6 @@ public:
 template <class T> class SwapAndRestore {
   T &Restore;
   T OriginalValue;
-  bool ShouldRestore = true;
 
 public:
   SwapAndRestore(T &Restore_) : SwapAndRestore(Restore_, Restore_) {}
@@ -172,20 +171,7 @@ public:
       : Restore(Restore_), OriginalValue(Restore) {
     Restore = std::move(NewVal);
   }
-  ~SwapAndRestore() {
-    if (ShouldRestore)
-      Restore = std::move(OriginalValue);
-  }
-
-  void shouldRestore(bool ShouldRestore_) { ShouldRestore = ShouldRestore_; }
-
-  void restoreNow(bool Force) {
-    if (!Force && !ShouldRestore)
-      return;
-
-    Restore = std::move(OriginalValue);
-    ShouldRestore = false;
-  }
+  ~SwapAndRestore() { Restore = std::move(OriginalValue); }
 
   SwapAndRestore(const SwapAndRestore &) = delete;
   SwapAndRestore &operator=(const SwapAndRestore &) = delete;
index c952068..c7cf456 100644 (file)
@@ -163,7 +163,6 @@ public:
 template <class T> class SwapAndRestore {
   T &Restore;
   T OriginalValue;
-  bool ShouldRestore = true;
 
 public:
   SwapAndRestore(T &Restore_) : SwapAndRestore(Restore_, Restore_) {}
@@ -172,20 +171,7 @@ public:
       : Restore(Restore_), OriginalValue(Restore) {
     Restore = std::move(NewVal);
   }
-  ~SwapAndRestore() {
-    if (ShouldRestore)
-      Restore = std::move(OriginalValue);
-  }
-
-  void shouldRestore(bool ShouldRestore_) { ShouldRestore = ShouldRestore_; }
-
-  void restoreNow(bool Force) {
-    if (!Force && !ShouldRestore)
-      return;
-
-    Restore = std::move(OriginalValue);
-    ShouldRestore = false;
-  }
+  ~SwapAndRestore() { Restore = std::move(OriginalValue); }
 
   SwapAndRestore(const SwapAndRestore &) = delete;
   SwapAndRestore &operator=(const SwapAndRestore &) = delete;