|
|
@@ -41,6 +41,7 @@ |
|
|
|
#include <random.hpp> |
|
|
|
#include <patch.hpp> |
|
|
|
#include <plugin.hpp> |
|
|
|
#include <helpers.hpp> |
|
|
|
|
|
|
|
#ifdef NDEBUG |
|
|
|
# undef DEBUG |
|
|
@@ -585,6 +586,9 @@ void Engine::removeModule_NoLock(Module* module) { |
|
|
|
m->rightExpander.module = NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
// Remove from widgets cache |
|
|
|
if (auto* const helper = reinterpret_cast<CardinalPluginModelHelper*>(module->model)) |
|
|
|
helper->clearCachedModuleWidget(module); |
|
|
|
// Remove module |
|
|
|
internal->modulesCache.erase(module->id); |
|
|
|
internal->modules.erase(it); |
|
|
@@ -981,8 +985,14 @@ void Engine::fromJson(json_t* rootJ) { |
|
|
|
} |
|
|
|
|
|
|
|
// Create module |
|
|
|
Module* module = model->createModule(); |
|
|
|
DISTRHO_SAFE_ASSERT_RETURN(module,); |
|
|
|
Module* const module = model->createModule(); |
|
|
|
DISTRHO_SAFE_ASSERT_CONTINUE(module != nullptr); |
|
|
|
|
|
|
|
// Create the widget too, needed by a few modules |
|
|
|
auto* const helper = reinterpret_cast<CardinalPluginModelHelper*>(model); |
|
|
|
DISTRHO_SAFE_ASSERT_CONTINUE(helper != nullptr); |
|
|
|
|
|
|
|
helper->createCachedModuleWidget(module); |
|
|
|
|
|
|
|
try { |
|
|
|
// This doesn't need a lock because the Module is not added to the Engine yet. |
|
|
|