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

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

View file

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

View file

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