Pass RoutineT::operator() parameters by value Reactor only supports basic data types as routine arguments, so pass them by value instead of by rvalue reference. References are implemented as pointers, so this change avoids unnecessary indirections. It also makes it easier to look at and debug the disassembly. Bug: b/143479561 Bug: b/228253151 Change-Id: I31f4e5fafddf34c3e29a59b53b4611776cb62b8e Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/64871 Kokoro-Result: kokoro <noreply+kokoro@google.com> Tested-by: Nicolas Capens <nicolascapens@google.com> Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Reactor/Routine.hpp b/src/Reactor/Routine.hpp index 24c5198..14fa116 100644 --- a/src/Reactor/Routine.hpp +++ b/src/Reactor/Routine.hpp
@@ -55,9 +55,9 @@ } template<typename... Args> - Return operator()(Args &&...args) const + Return operator()(Args... args) const { - return function(std::forward<Args>(args)...); + return function(args...); } const FunctionType getEntry() const