1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-01 16:39:30 +02:00

Fix memory leak on module list pointer.

Also tweaked code to make it shorter and clearer.
This commit is contained in:
james.k.crook@gmail.com 2014-10-26 11:59:02 +00:00
parent 31fa2be749
commit 798f2bb938

View File

@ -178,19 +178,13 @@ void * Module::GetSymbol(wxString name)
ModuleManager ModuleManager::mInstance;
// Provide builtin modules a means to identify themselves
static wxArrayPtrVoid *Builtins = NULL;
static wxArrayPtrVoid *pBuiltinModuleList = NULL;
void RegisterBuiltinModule(ModuleMain moduleMain)
{
static bool allocated = false;
if (!allocated)
{
Builtins = new wxArrayPtrVoid;
allocated = true;
}
Builtins->Add((void *)moduleMain);
if (pBuiltinModuleList == NULL)
pBuiltinModuleList = new wxArrayPtrVoid;
pBuiltinModuleList->Add((void *)moduleMain);
return;
}
@ -217,6 +211,8 @@ ModuleManager::~ModuleManager()
delete mod;
}
mDynModules.clear();
if( pBuiltinModuleList != NULL )
delete pBuiltinModuleList;
}
// static
@ -360,14 +356,12 @@ void ModuleManager::InitializeBuiltins()
{
PluginManager & pm = PluginManager::Get();
if (!Builtins)
{
if (pBuiltinModuleList==NULL)
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);
mDynModules[module->GetID()] = module;