From 8e61c65c0d622a9d75f220a18ca947d785b44637 Mon Sep 17 00:00:00 2001 From: Eladash Date: Sat, 11 Apr 2020 22:52:42 +0300 Subject: [PATCH] Fixup ::as_rvalue --- Utilities/types.h | 16 ++-------------- rpcs3/Emu/Cell/SPUASMJITRecompiler.cpp | 2 +- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/Utilities/types.h b/Utilities/types.h index 94fe3c0290..e98bc7eec8 100644 --- a/Utilities/types.h +++ b/Utilities/types.h @@ -168,21 +168,9 @@ template using get_sint_t = typename get_int_impl::stype; template -T as_rvalue(T&& obj) +std::remove_reference_t as_rvalue(T&& obj) { - return obj; -} - -template -T as_rvalue(const T& obj) -{ - return obj; -} - -template -T as_rvalue(const volatile T& obj) -{ - return obj; + return std::forward(obj); } // Formatting helper, type-specific preprocessing for improving safety and functionality diff --git a/rpcs3/Emu/Cell/SPUASMJITRecompiler.cpp b/rpcs3/Emu/Cell/SPUASMJITRecompiler.cpp index 8fc23f2fd0..e859de38d8 100644 --- a/rpcs3/Emu/Cell/SPUASMJITRecompiler.cpp +++ b/rpcs3/Emu/Cell/SPUASMJITRecompiler.cpp @@ -881,7 +881,7 @@ spu_function_t spu_recompiler::compile(spu_program&& _func) for (u32 d : words) c->dd(d); - for (auto&& work : decltype(consts)(std::move(consts))) + for (auto&& work : ::as_rvalue(std::move(consts))) { work(); }