diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-09-11 19:05:24 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2013-09-11 19:08:28 +0200 |
commit | 89402e0ef69da3c954a540510e8b4e8501bc1ce3 (patch) | |
tree | cf97d95e1ac837e5d439f2be9125e0a104b5bbce /src/qml/jsruntime/qv4function_p.h | |
parent | 0cce947449fa502fd4bf2aec95fa490c8417cdeb (diff) | |
parent | 262d7261033df7650938c38401112a4767d926ff (diff) |
Merge branch 'dev' of qtdeclarative into wip/v4
Conflicts:
src/qml/jsruntime/qv4script.cpp
Change-Id: I20136cab29d86862b5bd9208003200bc24bcdacf
Diffstat (limited to 'src/qml/jsruntime/qv4function_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4function_p.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4function_p.h b/src/qml/jsruntime/qv4function_p.h index 735dc558e1..1fc40d7209 100644 --- a/src/qml/jsruntime/qv4function_p.h +++ b/src/qml/jsruntime/qv4function_p.h @@ -49,6 +49,7 @@ #include "qv4value_def_p.h" #include <private/qv4compileddata_p.h> +#include <private/qv4engine_p.h> QT_BEGIN_NAMESPACE @@ -84,7 +85,17 @@ struct Function { const CompiledData::Function *compiledFunction; CompiledData::CompilationUnit *compilationUnit; - Value (*code)(ExecutionContext *, const uchar *); + inline Value code(ExecutionContext *ctx, const uchar *data) { + Value *stack = ctx->engine->jsStackTop; + try { + return codePtr(ctx, data); + } catch (...) { + ctx->engine->jsStackTop = stack; + throw; + } + } + + Value (*codePtr)(ExecutionContext *, const uchar *); const uchar *codeData; quint32 codeSize; |