forked from qt-creator/qt-creator
Lua: Bind lifetime of LuaEngine
We want to make sure that the LuaEngine is deleted when the plugin is removed. We also derive LuaEngine from QObject so we can use it as a guard in QObject::connect calls. Change-Id: I6b0568f11bee283f880ede9432b2a9fe83014758 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -25,17 +25,24 @@ public:
|
||||
QMap<QString, std::function<void(sol::function)>> m_hooks;
|
||||
};
|
||||
|
||||
static LuaEngine *s_instance = nullptr;
|
||||
|
||||
LuaEngine &LuaEngine::instance()
|
||||
{
|
||||
static LuaEngine luaEngine;
|
||||
return luaEngine;
|
||||
Q_ASSERT(s_instance);
|
||||
return *s_instance;
|
||||
}
|
||||
|
||||
LuaEngine::LuaEngine()
|
||||
: d(new LuaEnginePrivate())
|
||||
{}
|
||||
{
|
||||
s_instance = this;
|
||||
}
|
||||
|
||||
LuaEngine::~LuaEngine() = default;
|
||||
LuaEngine::~LuaEngine()
|
||||
{
|
||||
s_instance = nullptr;
|
||||
}
|
||||
|
||||
void LuaEngine::registerProvider(const QString &packageName, const PackageProvider &provider)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user