aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/qmljs/qmljsinterpreter.h
diff options
context:
space:
mode:
authorChristian Kamm <[email protected]>2010-08-27 09:37:01 +0200
committerChristian Kamm <[email protected]>2010-08-27 09:42:07 +0200
commit1a9c69ddb0ae8bac9b53648927e4302b9277f986 (patch)
tree21055ac0bad08c27e35334d82a589037a617aac5 /src/libs/qmljs/qmljsinterpreter.h
parenta14fa23caed777c9de4189c82060f39afb5da2a5 (diff)
QmlJS: Fix crash when opening JS files.
Now that Contexts are cached, it needs to be copyable. However, the ScopeChain has a QmlComponentChain member that owns resources and didn't have a correct copy constructor or copy assignment operator. I've made QmlComponentChain non-copyable and store a shared pointer to an instance instead, as it will generally not change for a given context. Reviewed-by: Lasse Holmstedt
Diffstat (limited to 'src/libs/qmljs/qmljsinterpreter.h')
-rw-r--r--src/libs/qmljs/qmljsinterpreter.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h
index 5ec91c009d5..67222cd3b02 100644
--- a/src/libs/qmljs/qmljsinterpreter.h
+++ b/src/libs/qmljs/qmljsinterpreter.h
@@ -242,8 +242,10 @@ class QMLJS_EXPORT ScopeChain
public:
ScopeChain();
- struct QmlComponentChain
+ class QmlComponentChain
{
+ Q_DISABLE_COPY(QmlComponentChain)
+ public:
QmlComponentChain();
~QmlComponentChain();
@@ -255,7 +257,7 @@ public:
};
const ObjectValue *globalScope;
- QmlComponentChain qmlComponentScope;
+ QSharedPointer<QmlComponentChain> qmlComponentScope;
QList<const ObjectValue *> qmlScopeObjects;
const ObjectValue *qmlTypes;
QList<const ObjectValue *> jsScopes;