From 3bb50ce3af214c6435d08000d04343227a31fe0f Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Thu, 25 Jul 2013 10:21:17 -0500 Subject: [PATCH] handle possible stack expansion or gc --- packages/yap-lbfgs/yap_lbfgs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/yap-lbfgs/yap_lbfgs.c b/packages/yap-lbfgs/yap_lbfgs.c index 57008eaa6..0b852976d 100644 --- a/packages/yap-lbfgs/yap_lbfgs.c +++ b/packages/yap-lbfgs/yap_lbfgs.c @@ -51,6 +51,7 @@ static lbfgsfloatval_t evaluate( { YAP_Term call; YAP_Bool result; + YAP_Int s1; YAP_Term t[3]; @@ -61,6 +62,8 @@ static lbfgsfloatval_t evaluate( call = YAP_MkApplTerm(fcall3, 3, t); g=g_tmp; + + s1 = YAP_InitSlot(call); optimizer_status=OPTIMIZER_STATUS_CB_EVAL; result=YAP_CallProlog(call); optimizer_status=OPTIMIZER_STATUS_RUNNING; @@ -71,6 +74,7 @@ static lbfgsfloatval_t evaluate( return FALSE; } + call = YAP_GetFromSlot( s1 ); if (YAP_IsFloatTerm(YAP_ArgOfTerm(1,call))) { return (lbfgsfloatval_t) YAP_FloatOfTerm(YAP_ArgOfTerm(1,call)); } else if (YAP_IsIntTerm(YAP_ArgOfTerm(1,call))) {