[libcxx-commits] [libcxxabi] e5c98e2 - [demangler] Simplify SwapAndRestore
Nathan Sidwell via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Mar 1 04:37:39 PST 2022
Author: Nathan Sidwell
Date: 2022-03-01T04:37:24-08:00
New Revision: e5c98e22fbbe3c3eb5f2c782d0789098afc81518
URL: https://github.com/llvm/llvm-project/commit/e5c98e22fbbe3c3eb5f2c782d0789098afc81518
DIFF: https://github.com/llvm/llvm-project/commit/e5c98e22fbbe3c3eb5f2c782d0789098afc81518.diff
LOG: [demangler] Simplify SwapAndRestore
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
Added:
Modified:
libcxxabi/src/demangle/Utility.h
llvm/include/llvm/Demangle/Utility.h
Removed:
################################################################################
diff --git a/libcxxabi/src/demangle/Utility.h b/libcxxabi/src/demangle/Utility.h
index 21e5efb18542e..f8190b81332ac 100644
--- a/libcxxabi/src/demangle/Utility.h
+++ b/libcxxabi/src/demangle/Utility.h
@@ -163,7 +163,6 @@ class OutputBuffer {
template <class T> class SwapAndRestore {
T &Restore;
T OriginalValue;
- bool ShouldRestore = true;
public:
SwapAndRestore(T &Restore_) : SwapAndRestore(Restore_, Restore_) {}
@@ -172,20 +171,7 @@ template <class T> class SwapAndRestore {
: 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;
diff --git a/llvm/include/llvm/Demangle/Utility.h b/llvm/include/llvm/Demangle/Utility.h
index c952068a19dda..c7cf4566e1a39 100644
--- a/llvm/include/llvm/Demangle/Utility.h
+++ b/llvm/include/llvm/Demangle/Utility.h
@@ -163,7 +163,6 @@ class OutputBuffer {
template <class T> class SwapAndRestore {
T &Restore;
T OriginalValue;
- bool ShouldRestore = true;
public:
SwapAndRestore(T &Restore_) : SwapAndRestore(Restore_, Restore_) {}
@@ -172,20 +171,7 @@ template <class T> class SwapAndRestore {
: 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;
More information about the libcxx-commits
mailing list