make sure we only follow pointers *before* we removed the respective code block,

ie don't kill the child before checking pointers from parent!


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1704 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2006-10-11 17:24:36 +00:00
parent 230c812a76
commit 18f363d0bc
2 changed files with 8 additions and 2 deletions

View File

@ -11,8 +11,12 @@
* File: cdmgr.c *
* comments: Code manager *
* *
* Last rev: $Date: 2006-10-11 15:08:03 $,$Author: vsc $ *
* Last rev: $Date: 2006-10-11 17:24:36 $,$Author: vsc $ *
* $Log: not supported by cvs2svn $
* Revision 1.194 2006/10/11 15:08:03 vsc
* fix bb entries
* comment development code for timestamp overflow.
*
* Revision 1.193 2006/10/11 14:53:57 vsc
* fix memory leak
* fix overflow handling
@ -1102,7 +1106,6 @@ kill_off_lu_block(LogUpdIndex *c, LogUpdIndex *parent, PredEntry *ap)
{
/* first, make sure that I killed off all my children, some children may
remain in case I have tables as children */
decrease_log_indices(c, (yamop *)&(ap->cs.p_code.ExpandCode));
if (parent != NULL) {
/* sat bye bye */
/* decrease refs */
@ -1165,6 +1168,7 @@ kill_first_log_iblock(LogUpdIndex *c, LogUpdIndex *parent, PredEntry *ap)
RemoveMainIndex(ap);
}
}
decrease_log_indices(c, (yamop *)&(ap->cs.p_code.ExpandCode));
/* make sure that a child cannot remove us */
kill_children(c, ap);
/* check if we are still the main index */
@ -1248,6 +1252,7 @@ Yap_ErLogUpdIndex(LogUpdIndex *clau)
{
if (clau->ClFlags & ErasedMask) {
if (!clau->ClRefCount) {
decrease_log_indices(clau, (yamop *)&(clau->ClPred->cs.p_code.ExpandCode));
if (clau->ClFlags & SwitchRootMask) {
kill_off_lu_block(clau, NULL, clau->ClPred);
} else {

View File

@ -16,6 +16,7 @@
<h2>Yap-5.1.2:</h2>
<ul>
<li> FIXED: make 128 maximum disjunction depth.</li>
<li> FIXED: first cut at using timestamps with logical updates.</li>
<li> FIXED: indexing on doubles wasn't working properly.</li>
<li> FIXED: sending large lists of atomics to DB was very, very slow.</li>