From 3c3ce8991e0f5b5352eec4c9f219540495f46b35 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Wed, 11 Aug 2010 12:04:36 +0200 Subject: [PATCH] Joseki: Do not crash in prior/moggy in case of no joseki dict loaded --- joseki/base.c | 1 + playout/moggy.c | 3 +++ uct/prior.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/joseki/base.c b/joseki/base.c index 51a2d21..2e54964 100644 --- a/joseki/base.c +++ b/joseki/base.c @@ -69,6 +69,7 @@ joseki_load(int bsize) void joseki_done(struct joseki_dict *jd) { + if (!jd) return; free(jd->patterns); free(jd); } diff --git a/playout/moggy.c b/playout/moggy.c index f28aa3c..7acb0ee 100644 --- a/playout/moggy.c +++ b/playout/moggy.c @@ -462,6 +462,9 @@ static coord_t joseki_check(struct playout_policy *p, struct board *b, enum stone to_play, struct board_state *s) { struct moggy_policy *pp = p->data; + if (!pp->jdict) + return pass; + struct move_queue q; q.moves = 0; diff --git a/uct/prior.c b/uct/prior.c index 033d405..ad5c7ce 100644 --- a/uct/prior.c +++ b/uct/prior.c @@ -127,6 +127,8 @@ void uct_prior_joseki(struct uct *u, struct tree_node *node, struct prior_map *map) { /* Q_{joseki} */ + if (!u->jdict) + return; for (int i = 0; i < 4; i++) { hash_t h = map->b->qhash[i] & joseki_hash_mask; coord_t *cc = u->jdict->patterns[h].moves[map->to_play - 1]; -- 2.11.4.GIT