diff options
author | Nobuaki Sukegawa <nsukeg@gmail.com> | 2014-12-15 02:33:05 +0900 |
---|---|---|
committer | Nobuaki Sukegawa <nsukeg@gmail.com> | 2015-01-02 15:31:11 +0100 |
commit | 96178192c451a5e26e30e14a619b96aacd16c29b (patch) | |
tree | 3a916cd5f3efcd09e68f65f948dcc61e493c547b /src/qml/qml/qqmltypeloader.cpp | |
parent | 2b5fb185627f8adfb6c5b3d62990a58429bf4ea7 (diff) |
Do not cause SegFault when importing empty javascript
Change-Id: I31f6571e73b5dd74bf3ade5cadc2daa02475b5cb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml/qqmltypeloader.cpp')
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index fb435a50af..99247fc6b7 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2574,6 +2574,11 @@ QQmlScriptData *QQmlScriptBlob::scriptData() const return m_scriptData; } +struct EmptyCompilationUnit : public QV4::CompiledData::CompilationUnit +{ + virtual void linkBackendToEngine(QV4::ExecutionEngine *) {} +}; + void QQmlScriptBlob::dataReceived(const Data &data) { QString source = QString::fromUtf8(data.data(), data.size()); @@ -2600,6 +2605,9 @@ void QQmlScriptBlob::dataReceived(const Data &data) setError(errors); return; } + if (!unit) { + unit.take(new EmptyCompilationUnit); + } irUnit.javaScriptCompilationUnit = unit; QmlIR::QmlUnitGenerator qmlGenerator; |