From 2905fc811437c31465f0811c81c6e47fb61eddff Mon Sep 17 00:00:00 2001 From: Ricardo Rocha Date: Wed, 9 Nov 2011 14:24:08 +0000 Subject: [PATCH] fix mode directed tabling --- OPTYap/tab.tries.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OPTYap/tab.tries.c b/OPTYap/tab.tries.c index 23ca1d540..4197d2149 100644 --- a/OPTYap/tab.tries.c +++ b/OPTYap/tab.tries.c @@ -1038,8 +1038,11 @@ sg_fr_ptr subgoal_search(yamop *preg, CELL **Yaddr) { if (TrNode_sg_fr(current_sg_node) == NULL) { /* new tabled subgoal */ #ifdef MODE_DIRECTED_TABLING - ALLOC_BLOCK(mode_directed, subs_pos*sizeof(int), int); - memcpy((void *)mode_directed, (void *)aux_mode_directed, subs_pos*sizeof(int)); + if (subs_pos) { + ALLOC_BLOCK(mode_directed, subs_pos*sizeof(int), int); + memcpy((void *)mode_directed, (void *)aux_mode_directed, subs_pos*sizeof(int)); + } else + mode_directed = NULL; #endif /* MODE_DIRECTED_TABLING */ new_subgoal_frame(sg_fr, preg, mode_directed); TrNode_sg_fr(current_sg_node) = (sg_node_ptr) sg_fr;