aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypeloader.cpp
diff options
context:
space:
mode:
authorNobuaki Sukegawa <nsukeg@gmail.com>2014-12-15 02:33:05 +0900
committerNobuaki Sukegawa <nsukeg@gmail.com>2015-01-02 15:31:11 +0100
commit96178192c451a5e26e30e14a619b96aacd16c29b (patch)
tree3a916cd5f3efcd09e68f65f948dcc61e493c547b /src/qml/qml/qqmltypeloader.cpp
parent2b5fb185627f8adfb6c5b3d62990a58429bf4ea7 (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.cpp8
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;