Merge pull request #2697 from endrift/fix-jit-trampoline

Common: CallLambdaTrampoline can return a value
This commit is contained in:
flacs committed 2015-07-04 11:59:00 +02:00
commit 3bbb2ede9c
2 files changed
+4 -6

No files matched your search

+2 -3
View File
@@ -711,10 +711,9 @@ public:
// (this method might be a thunk in the case of multi-inheritance) so we // (this method might be a thunk in the case of multi-inheritance) so we
// have to go through a trampoline function. // have to go through a trampoline function.
template <typename T, typename... Args> template <typename T, typename... Args>
static void CallLambdaTrampoline(const std::function<T(Args...)>* f, static T CallLambdaTrampoline(const std::function<T(Args...)>* f, Args... args)
Args... args)
{ {
(*f)(args...); return (*f)(args...);
} }
// This function expects you to have set up the state. // This function expects you to have set up the state.
+2 -3
View File
@@ -971,10 +971,9 @@ public:
// (this method might be a thunk in the case of multi-inheritance) so we // (this method might be a thunk in the case of multi-inheritance) so we
// have to go through a trampoline function. // have to go through a trampoline function.
template <typename T, typename... Args> template <typename T, typename... Args>
static void CallLambdaTrampoline(const std::function<T(Args...)>* f, static T CallLambdaTrampoline(const std::function<T(Args...)>* f, Args... args)
Args... args)
{ {
(*f)(args...); return (*f)(args...);
} }
template <typename T, typename... Args> template <typename T, typename... Args>