From 3a20d9734fa8996434895bc3d27e4b255ae98bea Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 5 Oct 2019 08:43:44 -0400 Subject: video_core/ast: Default the move constructor and assignment operator This is behaviorally equivalent and also fixes a bug where some members weren't being moved over. --- src/video_core/shader/ast.cpp | 24 ------------------------ src/video_core/shader/ast.h | 4 ++-- 2 files changed, 2 insertions(+), 26 deletions(-) (limited to 'src/video_core/shader') diff --git a/src/video_core/shader/ast.cpp b/src/video_core/shader/ast.cpp index 986e4cd64..2627c563c 100644 --- a/src/video_core/shader/ast.cpp +++ b/src/video_core/shader/ast.cpp @@ -374,30 +374,6 @@ void ASTManager::Init() { false_condition = MakeExpr(false); } -ASTManager::ASTManager(ASTManager&& other) noexcept - : labels_map(std::move(other.labels_map)), labels_count{other.labels_count}, - gotos(std::move(other.gotos)), labels(std::move(other.labels)), variables{other.variables}, - program{other.program}, main_node{other.main_node}, false_condition{other.false_condition}, - disable_else_derivation{other.disable_else_derivation} { - other.main_node.reset(); -} - -ASTManager& ASTManager::operator=(ASTManager&& other) noexcept { - full_decompile = other.full_decompile; - labels_map = std::move(other.labels_map); - labels_count = other.labels_count; - gotos = std::move(other.gotos); - labels = std::move(other.labels); - variables = other.variables; - program = other.program; - main_node = other.main_node; - false_condition = other.false_condition; - disable_else_derivation = other.disable_else_derivation; - - other.main_node.reset(); - return *this; -} - void ASTManager::DeclareLabel(u32 address) { const auto pair = labels_map.emplace(address, labels_count); if (pair.second) { diff --git a/src/video_core/shader/ast.h b/src/video_core/shader/ast.h index 6d2dc0895..d280ed143 100644 --- a/src/video_core/shader/ast.h +++ b/src/video_core/shader/ast.h @@ -313,8 +313,8 @@ public: ASTManager(const ASTManager& o) = delete; ASTManager& operator=(const ASTManager& other) = delete; - ASTManager(ASTManager&& other) noexcept; - ASTManager& operator=(ASTManager&& other) noexcept; + ASTManager(ASTManager&& other) noexcept = default; + ASTManager& operator=(ASTManager&& other) noexcept = default; void Init(); -- cgit v1.2.3