Qml Tooling: Replace bare pointers with QScopedPointer

This way we don't have to manually initialize and delete them.

Change-Id: I0104c744dba380e957271d0924498e3643856e9e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
Ulf Hermann 2017-09-05 15:23:05 +02:00
parent 131243b3c8
commit a88ca87497
4 changed files with 18 additions and 27 deletions

View File

@ -141,10 +141,6 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory)
, m_engineId(engineSerial.fetchAndAddOrdered(1))
, regExpCache(0)
, m_multiplyWrappedQObjects(0)
#ifndef QT_NO_QML_DEBUGGER
, m_debugger(0)
, m_profiler(0)
#endif
{
memoryManager = new QV4::MemoryManager(this);
@ -477,12 +473,6 @@ ExecutionEngine::ExecutionEngine(EvalISelFactory *factory)
ExecutionEngine::~ExecutionEngine()
{
#ifndef QT_NO_QML_DEBUGGER
delete m_debugger;
m_debugger = 0;
delete m_profiler;
m_profiler = 0;
#endif
delete m_multiplyWrappedQObjects;
m_multiplyWrappedQObjects = 0;
delete identifierTable;
@ -508,13 +498,13 @@ ExecutionEngine::~ExecutionEngine()
void ExecutionEngine::setDebugger(Debugging::Debugger *debugger)
{
Q_ASSERT(!m_debugger);
m_debugger = debugger;
m_debugger.reset(debugger);
}
void ExecutionEngine::setProfiler(Profiling::Profiler *profiler)
{
Q_ASSERT(!m_profiler);
m_profiler = profiler;
m_profiler.reset(profiler);
}
#endif // QT_NO_QML_DEBUGGER

View File

@ -353,8 +353,8 @@ public:
void setDebugger(Debugging::Debugger *) {}
void setProfiler(Profiling::Profiler *) {}
#else
QV4::Debugging::Debugger *debugger() const { return m_debugger; }
QV4::Profiling::Profiler *profiler() const { return m_profiler; }
QV4::Debugging::Debugger *debugger() const { return m_debugger.data(); }
QV4::Profiling::Profiler *profiler() const { return m_profiler.data(); }
void setDebugger(Debugging::Debugger *debugger);
void setProfiler(Profiling::Profiler *profiler);
@ -464,8 +464,8 @@ private:
void failStackLimitCheck(Scope &scope);
#ifndef QT_NO_QML_DEBUGGER
QV4::Debugging::Debugger *m_debugger;
QV4::Profiling::Profiler *m_profiler;
QScopedPointer<QV4::Debugging::Debugger> m_debugger;
QScopedPointer<QV4::Profiling::Profiler> m_profiler;
#endif
};

View File

@ -962,6 +962,14 @@ void QQmlTypeLoader::invalidate()
#endif // qml_network
}
#ifndef QT_NO_QML_DEBUGGER
void QQmlTypeLoader::setProfiler(QQmlProfiler *profiler)
{
Q_ASSERT(!m_profiler);
m_profiler.reset(profiler);
}
#endif
void QQmlTypeLoader::lock()
{
m_thread->lock();
@ -1596,9 +1604,6 @@ Constructs a new type loader that uses the given \a engine.
*/
QQmlTypeLoader::QQmlTypeLoader(QQmlEngine *engine)
: m_engine(engine), m_thread(new QQmlTypeLoaderThread(this)),
#ifndef QT_NO_QML_DEBUGGER
m_profiler(nullptr),
#endif
m_typeCacheTrimThreshold(TYPELOADER_MINIMUM_TRIM_THRESHOLD)
{
}
@ -1615,10 +1620,6 @@ QQmlTypeLoader::~QQmlTypeLoader()
clearCache();
invalidate();
#ifndef QT_NO_QML_DEBUGGER
delete m_profiler;
#endif
}
QQmlImportDatabase *QQmlTypeLoader::importDatabase() const

View File

@ -249,7 +249,7 @@ private:
QString m_location;
};
class Q_AUTOTEST_EXPORT QQmlTypeLoader
class Q_QML_PRIVATE_EXPORT QQmlTypeLoader
{
Q_DECLARE_TR_FUNCTIONS(QQmlTypeLoader)
public:
@ -325,8 +325,8 @@ public:
QQmlProfiler *profiler() const { return nullptr; }
void setProfiler(QQmlProfiler *) {}
#else
QQmlProfiler *profiler() const { return m_profiler; }
void setProfiler(QQmlProfiler *profiler) { Q_ASSERT(!m_profiler); m_profiler = profiler; }
QQmlProfiler *profiler() const { return m_profiler.data(); }
void setProfiler(QQmlProfiler *profiler);
#endif // QT_NO_QML_DEBUGGER
@ -380,7 +380,7 @@ private:
QQmlTypeLoaderThread *m_thread;
#ifndef QT_NO_QML_DEBUGGER
QQmlProfiler *m_profiler;
QScopedPointer<QQmlProfiler> m_profiler;
#endif
#if QT_CONFIG(qml_network)