- reimplemented RemoveSICSInternalCallbackFrom

This commit is contained in:
zolliker
2010-01-27 13:34:57 +00:00
parent 3f75ed617b
commit e357d641bf

View File

@ -1609,15 +1609,21 @@ int GetHdbPath(pHdb nodeArg, char *path, size_t pathlen)
}
/*--------------------------------------------------------------------------*/
static int RemoveParNodeCallback(char *name, pDummy object,
void *internalID)
void RemoveSICSInternalCallbackFrom(pHdb node, void *internalID)
{
hdbPtrMessage m;
m.type = killPtr;
m.pPtr = internalID;
RecurseCallbackChains(node, (pHdbMessage) & m);
}
/*--------------------------------------------------------------------------*/
static int RemoveParNodeCallback(char *name, pDummy object,
void *internalID)
{
if (object && object->pDescriptor->parNode) {
RecurseCallbackChains(object->pDescriptor->parNode, (pHdbMessage) & m);
RemoveSICSInternalCallbackFrom(object->pDescriptor->parNode, internalID);
}
return 1;
}
@ -1625,11 +1631,7 @@ static int RemoveParNodeCallback(char *name, pDummy object,
/*--------------------------------------------------------------------------*/
void RemoveSICSInternalCallback(void *internalID)
{
hdbPtrMessage m;
m.type = killPtr;
m.pPtr = internalID;
RecurseCallbackChains(GetHipadabaRoot(), (pHdbMessage) & m);
RemoveSICSInternalCallbackFrom(GetHipadabaRoot(), internalID);
ForEachCommand(RemoveParNodeCallback, internalID);
}