From dba17092b268237976bc0b379e88d9d50370ea3f Mon Sep 17 00:00:00 2001 From: vsc Date: Mon, 7 Oct 2002 21:20:12 +0000 Subject: [PATCH] fix error handling when copy_term was not called from a builtin. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@624 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- C/utilpreds.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/C/utilpreds.c b/C/utilpreds.c index 5bb6cbfec..2bb1b16b6 100644 --- a/C/utilpreds.c +++ b/C/utilpreds.c @@ -307,6 +307,7 @@ CopyTerm(Term inp) { Hi = H+1; H += 2; if ((res = copy_complex_term(Hi-2, Hi-1, Hi, Hi)) < 0) { + ARG1 = t; if (res == -1) { /* handle overflow */ gc(2, ENV, P); t = Deref(ARG1); @@ -339,6 +340,7 @@ CopyTerm(Term inp) { { int res; if ((res = copy_complex_term(ap-1, ap+1, Hi, Hi)) < 0) { + ARG1 = t; if (res == -1) { /* handle overflow */ gc(2, ENV, P); t = Deref(ARG1); @@ -370,6 +372,7 @@ CopyTerm(Term inp) { { int res; if ((res = copy_complex_term(ap, ap+ArityOfFunctor(f), HB0+1, HB0)) < 0) { + ARG1 = t; if (res == -1) { gc(2, ENV, P); t = Deref(ARG1);