aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4compileddata_p.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-08-16 08:57:58 +0200
committerLars Knoll <lars.knoll@digia.com>2013-08-16 10:14:22 +0200
commitd017fe9b38c74d2cc2fa754af3bf9e32357f149c (patch)
treed56a6421c026d4ec03165722b66540c7752a9d1e /src/qml/compiler/qv4compileddata_p.h
parentb88626a3a59f7dcd01be6fe2a8236b14ca1176f5 (diff)
Store line number mappings in the compiled function
Change-Id: I4e37aac3618b20ccd52ce4833098781374a3daf6 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/compiler/qv4compileddata_p.h')
-rw-r--r--src/qml/compiler/qv4compileddata_p.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/qml/compiler/qv4compileddata_p.h b/src/qml/compiler/qv4compileddata_p.h
index e267f0fecb..0c5bf15c02 100644
--- a/src/qml/compiler/qv4compileddata_p.h
+++ b/src/qml/compiler/qv4compileddata_p.h
@@ -141,6 +141,8 @@ struct Function
quint32 formalsOffset;
quint32 nLocals;
quint32 localsOffset;
+ quint32 nLineNumberMappingEntries;
+ quint32 lineNumberMappingOffset; // Array of uint pairs (offset and line number)
quint32 nInnerFunctions;
quint32 innerFunctionsOffset;
// quint32 formalsIndex[nFormals]
@@ -150,11 +152,11 @@ struct Function
const quint32 *formalsTable() const { return reinterpret_cast<const quint32 *>(reinterpret_cast<const char *>(this) + formalsOffset); }
const quint32 *localsTable() const { return reinterpret_cast<const quint32 *>(reinterpret_cast<const char *>(this) + localsOffset); }
+ const quint32 *lineNumberMapping() const { return reinterpret_cast<const quint32 *>(reinterpret_cast<const char *>(this) + lineNumberMappingOffset); }
- static int calculateSize(int nFormals, int nLocals, int nInnerfunctions) {
- return (sizeof(Function) + (nFormals + nLocals + nInnerfunctions) * sizeof(quint32) + 7) & ~0x7;
+ static int calculateSize(int nFormals, int nLocals, int nInnerfunctions, int lineNumberMappings) {
+ return (sizeof(Function) + (nFormals + nLocals + nInnerfunctions + 2 * lineNumberMappings) * sizeof(quint32) + 7) & ~0x7;
}
- static int calculateSize(QQmlJS::V4IR::Function *f);
};
struct String