From: Terrance S. <ts...@us...> - 2007-02-22 21:17:11
|
Update of /cvsroot/xsb/XSB/emu In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv32012 Modified Files: sub_delete.c Log Message: Oops -- forgot to handle deallocation of private hash table arrays in the MT engine for *subsumptive* tables. Found with another Linux test. I dont like to do a lot of little CVS updates, but sometimes the only way you can shake the bugs out is by working on a couple of platforms, and I use CVS to commuicate between the platforms. Index: sub_delete.c =================================================================== RCS file: /cvsroot/xsb/XSB/emu/sub_delete.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- sub_delete.c 7 Dec 2006 00:26:45 -0000 1.16 +++ sub_delete.c 22 Feb 2007 21:17:04 -0000 1.17 @@ -80,12 +80,24 @@ -------------------------------------- */ static void delete_private_btht(CTXTdeclc BTHTptr btht) { +#ifdef MULTI_THREAD + if (BTHT_NumBuckets(btht) == TrieHT_INIT_SIZE) { + SM_DeallocateStruct(*private_smTableBTHTArray,BTHT_BucketArray(btht)); + } + else +#endif mem_dealloc(BTHT_BucketArray(btht),BTHT_NumBuckets(btht)*sizeof(void *),TABLE_SPACE); TrieHT_RemoveFromAllocList(subsumptive_smBTHT,btht); SM_DeallocateStruct(subsumptive_smBTHT,btht); } static void delete_private_tstht(CTXTdeclc TSTHTptr tstht) { +#ifdef MULTI_THREAD + if (BTHT_NumBuckets(tstht) == TrieHT_INIT_SIZE) { + SM_DeallocateStruct(*private_smTableBTHTArray,BTHT_BucketArray(tstht)); + } + else +#endif mem_dealloc(BTHT_BucketArray(tstht),BTHT_NumBuckets(tstht)*sizeof(void *),TABLE_SPACE); free_private_tsi(CTXTc tstht); free_private_tstht(CTXTc tstht); |