if (fgpInstance==this) {
nofInstances=fgNofInstances--;
}
- if (nofInstances==0) delete this;
+ if (fgNofInstances==0) {
+ delete fgpInstance;
+ fgpInstance = NULL;
+ }
return nofInstances;
}
// see header file for function documentation
int iResult=0;
if (pConf) {
- if (FindConfiguration(pConf->GetName()) == NULL) {
+ AliHLTConfiguration* pExisting=NULL;
+ if ((pExisting=FindConfiguration(pConf->GetName())) == NULL) {
AliHLTConfiguration* pClone=new AliHLTConfiguration(*pConf);
fgListConfigurations.Add(pClone);
HLTDebug("configuration \"%s\" (%p) registered from %p", pClone->GetName(), pClone, pConf);
lnk=lnk->Next();
}
} else {
+ if ((*pExisting)!=(*pConf)) {
iResult=-EEXIST;
- HLTWarning("configuration \"%s\" already registered", pConf->GetName());
+ HLTWarning("configuration \"%s\" already registered with different properties", pConf->GetName());
+ }
}
} else {
iResult=-EINVAL;