diff options
| author | Christian Kamm <[email protected]> | 2010-08-27 09:37:01 +0200 |
|---|---|---|
| committer | Christian Kamm <[email protected]> | 2010-08-27 09:42:07 +0200 |
| commit | 1a9c69ddb0ae8bac9b53648927e4302b9277f986 (patch) | |
| tree | 21055ac0bad08c27e35334d82a589037a617aac5 /src/libs/qmljs/qmljsinterpreter.h | |
| parent | a14fa23caed777c9de4189c82060f39afb5da2a5 (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.h | 6 |
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; |
