Cleanup created script instances if they failed to run.

git-svn-id: http://voip.null.ro/svn/yate@6545 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
oana 2022-03-02 15:32:00 +00:00
parent 38368b8228
commit a0d085b165
1 changed files with 7 additions and 2 deletions

View File

@ -6413,8 +6413,10 @@ bool JsGlobal::runMain()
m_instanceCount,m_instances.count());
if (m_instanceCount <= 1) {
JsGlobalInstance* inst = new JsGlobalInstance(this,0);
if(ScriptRun::Succeeded != inst->runMain())
if(ScriptRun::Succeeded != inst->runMain()) {
TelEngine::destruct(inst);
return false;
}
m_instances.append(inst);
}
else {
@ -6422,13 +6424,16 @@ bool JsGlobal::runMain()
// add instances if m_instancesCount is increased
for (unsigned int i = 0; i < m_instanceCount; i++) {
JsGlobalInstance* inst = getInstance(i + 1);
// get instance returns a refcounted instance
if (inst) {
TelEngine::destruct(inst);
continue;
}
inst = new JsGlobalInstance(this,i + 1);
if(ScriptRun::Succeeded != inst->runMain())
if(ScriptRun::Succeeded != inst->runMain()) {
TelEngine::destruct(inst);
return false;
}
m_instances.append(inst);
}