From: David S. W. <dw...@us...> - 2005-10-20 13:49:24
|
Update of /cvsroot/xsb/XSB/emu In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6335 Modified Files: biassert.c Log Message: Fix bug in retractall: check if freeing retract buffers empties the predicate, and don't free the block if so. Index: biassert.c =================================================================== RCS file: /cvsroot/xsb/XSB/emu/biassert.c,v retrieving revision 1.97 retrieving revision 1.98 diff -u -r1.97 -r1.98 --- biassert.c 18 Oct 2005 20:37:16 -0000 1.97 +++ biassert.c 20 Oct 2005 13:49:07 -0000 1.98 @@ -2631,6 +2631,7 @@ return; } force_retract_buffers(CTXT); + if (cell_opcode((CPtr)prref) == fail) return; /* if freeing buffered clauses empties it */ buffers_to_free[btop++] = prref->FirstClRef; while (btop > 0) { if (btop >= MAXDYNFREEBUFF) xsb_exit("Too many buffers to retract"); |