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:
		@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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> 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user