globle int HandleFactDuplication( void *theFact) { struct fact *tempPtr; int hashValue; hashValue = HashFact((struct fact *) theFact); if (FactDuplication) return(hashValue); tempPtr = FactExists((struct fact *) theFact,hashValue); if (tempPtr == NULL) return(hashValue); ReturnFact((struct fact *) theFact); #if LOGICAL_DEPENDENCIES && DEFRULE_CONSTRUCT AddLogicalDependencies((struct patternEntity *) tempPtr,TRUE); #endif return(-1); }
globle unsigned long HandleFactDuplication( void *theEnv, void *theFact, intBool *duplicate) { struct fact *tempPtr; unsigned long hashValue; *duplicate = FALSE; hashValue = HashFact((struct fact *) theFact); if (FactData(theEnv)->FactDuplication) return(hashValue); tempPtr = FactExists(theEnv,(struct fact *) theFact,hashValue); if (tempPtr == NULL) return(hashValue); ReturnFact(theEnv,(struct fact *) theFact); #if DEFRULE_CONSTRUCT AddLogicalDependencies(theEnv,(struct patternEntity *) tempPtr,TRUE); #endif *duplicate = TRUE; return(0); }