globle void AtomDeinstall( int type, void *vPtr) { switch (type) { case SYMBOL: case STRING: #if DEFGLOBAL_CONSTRUCT case GBL_VARIABLE: #endif #if OBJECT_SYSTEM case INSTANCE_NAME: #endif DecrementSymbolCount((SYMBOL_HN *) vPtr); break; case FLOAT: DecrementFloatCount((FLOAT_HN *) vPtr); break; case INTEGER: DecrementIntegerCount((INTEGER_HN *) vPtr); break; #if FUZZY_DEFTEMPLATES case FUZZY_VALUE: DeinstallFuzzyValue(vPtr); break; #endif case MULTIFIELD: MultifieldDeinstall((struct multifield *) vPtr); break; case RVOID: break; default: if (PrimitivesArray[type] == NULL) break; if (PrimitivesArray[type]->bitMap) DecrementBitMapCount((BITMAP_HN *) vPtr); else if (PrimitivesArray[type]->decrementBusyCount) { (*PrimitivesArray[type]->decrementBusyCount)(vPtr); } } }
globle void AtomDeinstall( void *theEnv, int type, void *vPtr) { switch (type) { case SYMBOL: case STRING: #if DEFGLOBAL_CONSTRUCT case GBL_VARIABLE: #endif #if OBJECT_SYSTEM case INSTANCE_NAME: #endif DecrementSymbolCount(theEnv,(SYMBOL_HN *) vPtr); break; case FLOAT: DecrementFloatCount(theEnv,(FLOAT_HN *) vPtr); break; case INTEGER: DecrementIntegerCount(theEnv,(INTEGER_HN *) vPtr); break; case EXTERNAL_ADDRESS: DecrementExternalAddressCount(theEnv,(EXTERNAL_ADDRESS_HN *) vPtr); break; case MULTIFIELD: MultifieldDeinstall(theEnv,(struct multifield *) vPtr); break; case RVOID: break; default: if (EvaluationData(theEnv)->PrimitivesArray[type] == NULL) break; if (EvaluationData(theEnv)->PrimitivesArray[type]->bitMap) DecrementBitMapCount(theEnv,(BITMAP_HN *) vPtr); else if (EvaluationData(theEnv)->PrimitivesArray[type]->decrementBusyCount) { (*EvaluationData(theEnv)->PrimitivesArray[type]->decrementBusyCount)(theEnv,vPtr); } } }