mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-03 17:39:25 +02:00
Fix memory leak on module list pointer.
Also tweaked code to make it shorter and clearer.
This commit is contained in:
parent
31fa2be749
commit
798f2bb938
@ -178,19 +178,13 @@ void * Module::GetSymbol(wxString name)
|
|||||||
ModuleManager ModuleManager::mInstance;
|
ModuleManager ModuleManager::mInstance;
|
||||||
|
|
||||||
// Provide builtin modules a means to identify themselves
|
// Provide builtin modules a means to identify themselves
|
||||||
static wxArrayPtrVoid *Builtins = NULL;
|
static wxArrayPtrVoid *pBuiltinModuleList = NULL;
|
||||||
void RegisterBuiltinModule(ModuleMain moduleMain)
|
void RegisterBuiltinModule(ModuleMain moduleMain)
|
||||||
{
|
{
|
||||||
static bool allocated = false;
|
if (pBuiltinModuleList == NULL)
|
||||||
|
pBuiltinModuleList = new wxArrayPtrVoid;
|
||||||
if (!allocated)
|
|
||||||
{
|
|
||||||
Builtins = new wxArrayPtrVoid;
|
|
||||||
allocated = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Builtins->Add((void *)moduleMain);
|
|
||||||
|
|
||||||
|
pBuiltinModuleList->Add((void *)moduleMain);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,6 +211,8 @@ ModuleManager::~ModuleManager()
|
|||||||
delete mod;
|
delete mod;
|
||||||
}
|
}
|
||||||
mDynModules.clear();
|
mDynModules.clear();
|
||||||
|
if( pBuiltinModuleList != NULL )
|
||||||
|
delete pBuiltinModuleList;
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
@ -360,14 +356,12 @@ void ModuleManager::InitializeBuiltins()
|
|||||||
{
|
{
|
||||||
PluginManager & pm = PluginManager::Get();
|
PluginManager & pm = PluginManager::Get();
|
||||||
|
|
||||||
if (!Builtins)
|
if (pBuiltinModuleList==NULL)
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0, cnt = Builtins->GetCount(); i < cnt; i++)
|
for (size_t i = 0, cnt = pBuiltinModuleList->GetCount(); i < cnt; i++)
|
||||||
{
|
{
|
||||||
ModuleMain audacityMain = (ModuleMain) (*Builtins)[i];
|
ModuleMain audacityMain = (ModuleMain) (*pBuiltinModuleList)[i];
|
||||||
ModuleInterface *module = audacityMain(this, NULL);
|
ModuleInterface *module = audacityMain(this, NULL);
|
||||||
|
|
||||||
mDynModules[module->GetID()] = module;
|
mDynModules[module->GetID()] = module;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user