new version of viterbi implementation
fix all:atvars reporting bad info fix bad S info in x86_64 git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1968 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
21
C/attvar.c
21
C/attvar.c
@@ -418,16 +418,21 @@ AllAttVars(attvar_record *attv) {
|
||||
return 0L;
|
||||
}
|
||||
if (IsVarTerm(attv->Done) && IsUnboundVar(&attv->Done)) {
|
||||
if (IsVarTerm(attv->Atts) && VarOfTerm(attv->Atts) < (CELL *)attv) {
|
||||
/* skip call residue(s) */
|
||||
attv = (attvar_record *)(attv->Atts);
|
||||
} else {
|
||||
if (H != h0) {
|
||||
H[-1] = AbsPair(H);
|
||||
if (IsVarTerm(attv->Atts)) {
|
||||
if (VarOfTerm(attv->Atts) < (CELL *)attv) {
|
||||
/* skip call residue(s) */
|
||||
attv = (attvar_record *)(attv->Atts);
|
||||
continue;
|
||||
} else if (IsUnboundVar(&attv->Atts)) {
|
||||
/* ignore arena */
|
||||
continue;
|
||||
}
|
||||
H[0] = (CELL)attv;
|
||||
H += 2;
|
||||
}
|
||||
if (H != h0) {
|
||||
H[-1] = AbsPair(H);
|
||||
}
|
||||
H[0] = (CELL)attv;
|
||||
H += 2;
|
||||
}
|
||||
}
|
||||
if (H != h0) {
|
||||
|
Reference in New Issue
Block a user