insert some more slack for indices in LU

Use doubly linked list for LU indices so that updating is less cumbersome.


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1316 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc
2005-05-31 19:42:28 +00:00
parent b8546491fc
commit 2ed1345611
6 changed files with 131 additions and 36 deletions

View File

@@ -11,8 +11,11 @@
* File: amasm.c *
* comments: abstract machine assembler *
* *
* Last rev: $Date: 2005-05-30 05:33:43 $ *
* Last rev: $Date: 2005-05-31 19:42:27 $ *
* $Log: not supported by cvs2svn $
* Revision 1.76 2005/05/30 05:33:43 vsc
* get rid of annoying debugging message.
*
* Revision 1.75 2005/05/30 05:26:49 vsc
* fix tabling
* allow atom gc again for now.
@@ -1308,6 +1311,11 @@ init_log_upd_table(LogUpdIndex *ic, union clause_obj *cl_u)
{
/* insert myself in the indexing code chain */
ic->SiblingIndex = cl_u->lui.ChildIndex;
if (ic->SiblingIndex) {
ic->SiblingIndex->PrevSiblingIndex = ic;
}
cl_u->lui.ChildIndex = ic;
ic->PrevSiblingIndex = NULL;
ic->ChildIndex = NULL;
ic->ClRefCount = 0;
ic->u.ParentIndex = (LogUpdIndex *)cl_u;
@@ -2382,6 +2390,7 @@ do_pass(int pass_no, yamop **entry_codep, int assembling, int *clause_has_blobsp
cl_u->lui.ClFlags = LogUpdMask|IndexedPredFlag|IndexMask|SwitchRootMask;
cl_u->lui.ChildIndex = NULL;
cl_u->lui.SiblingIndex = NULL;
cl_u->lui.PrevSiblingIndex = NULL;
cl_u->lui.u.pred = cip->CurrentPred;
cl_u->lui.ClSize = size;
cl_u->lui.ClRefCount = 0;