fixes for thread support

fix indexing bug (serious)


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1154 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc
2004-10-04 18:56:20 +00:00
parent 2c91ebc7bc
commit 62354231b0
7 changed files with 67 additions and 23 deletions

View File

@@ -11,8 +11,11 @@
* File: index.c *
* comments: Indexing a Prolog predicate *
* *
* Last rev: $Date: 2004-09-30 21:37:41 $,$Author: vsc $ *
* Last rev: $Date: 2004-10-04 18:56:19 $,$Author: vsc $ *
* $Log: not supported by cvs2svn $
* Revision 1.101 2004/09/30 21:37:41 vsc
* fixes for thread support
*
* Revision 1.100 2004/09/30 19:51:54 vsc
* fix overflow from within clause/2
*
@@ -2712,6 +2715,21 @@ valid_instructions(yamop *end, yamop *cl)
case _get_atom:
cl = NEXTOP(cl,xc);
break;
case _get_2atoms:
cl = NEXTOP(cl,cc);
break;
case _get_3atoms:
cl = NEXTOP(cl,ccc);
break;
case _get_4atoms:
cl = NEXTOP(cl,cccc);
break;
case _get_5atoms:
cl = NEXTOP(cl,ccccc);
break;
case _get_6atoms:
cl = NEXTOP(cl,cccccc);
break;
case _get_struct:
cl = NEXTOP(cl,xf);
break;
@@ -6215,11 +6233,11 @@ kill_unsafe_block(path_stack_entry *sp, op_numbers op, PredEntry *ap, int first,
LogUpdClause *lc = lu_clause(ipc);
if (first) {
cld[0].Code = lc->ClCode;
cld[1].Code = cls[0].Code;
} else {
cld[0].Code = cls[0].Code;
cld[1].Code = lc->ClCode;
} else {
cld[0].Code = lc->ClCode;
cld[1].Code = cls[0].Code;
}
intrs.expand_block = NULL;
*sp->u.cle.entry_code = (yamop *)suspend_indexing(cld, cld+1, ap, &intrs);