Skip to content

Commit

Permalink
[demangler] Simplify SwapAndRestore
Browse files Browse the repository at this point in the history
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
  • Loading branch information
urnathan committed Mar 1, 2022
1 parent 3cdc1c1 commit e5c98e2
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 30 deletions.
16 changes: 1 addition & 15 deletions libcxxabi/src/demangle/Utility.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_) {}
Expand All @@ -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;
Expand Down
16 changes: 1 addition & 15 deletions llvm/include/llvm/Demangle/Utility.h
Original file line number Diff line number Diff line change
Expand Up @@ -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_) {}
Expand All @@ -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;
Expand Down

0 comments on commit e5c98e2

Please sign in to comment.