diff options
author | Tim Jenssen <[email protected]> | 2018-11-15 19:21:12 +0100 |
---|---|---|
committer | Alessandro Portale <[email protected]> | 2018-11-15 20:32:33 +0000 |
commit | 4d74cbb945d53991ae844922b532987b513e14e6 (patch) | |
tree | 7283961df11b07042a916e035f2a472c4287ea20 | |
parent | 7ef2dccff806e0b32a99973fdf357f2ad6552f4c (diff) |
Fix reference on temperary valuev4.8.0-beta2
Old code at Context::lookupReference took via Context::ptr()
a temporary QSharedPointer as an argument into a reference
member which is deleted just after ReferenceContext is constructed
- changing that to a general member copies this temporary QSharedPointer
and fixes the problem which was there since always and that this was not
crashing before was just luck.
class ReferenceContext
{
public:
ReferenceContext(const ContextPtr &context);
private:
const ContextPtr &m_context;
};
QWeakPointer<const Context> _ptr;
ContextPtr Context::ptr() const
{
return _ptr.toStrongRef();
}
const Value *Context::lookupReference(const Value *value) const
{
ReferenceContext refContext(ptr());
return refContext.lookupReference(value);
}
Task-number: QTCREATORBUG-21510
Change-Id: Ic49a0597763fb8be65feca6f24fec105d531d6ab
Reviewed-by: Alessandro Portale <[email protected]>
-rw-r--r-- | src/libs/qmljs/qmljscontext.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libs/qmljs/qmljscontext.h b/src/libs/qmljs/qmljscontext.h index fd7f0569eb8..cafee3e970a 100644 --- a/src/libs/qmljs/qmljscontext.h +++ b/src/libs/qmljs/qmljscontext.h @@ -91,7 +91,7 @@ public: operator const ContextPtr &() const; private: - const ContextPtr &m_context; + const ContextPtr m_context; QList<const Reference *> m_references; }; |