gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] MAX_ESCAPE


From: Paul Pogonyshev
Subject: [gnugo-devel] MAX_ESCAPE
Date: Fri, 6 Jun 2003 23:49:52 -0400
User-agent: KMail/1.5.9

this patch fixes the bug related to access to random eye data
when "MAX_ESCAPE rule" makes gnu go not call owl_estimate_life().
no regression changes.

Paul


Index: engine/owl.c
===================================================================
RCS file: /cvsroot/gnugo/gnugo/engine/owl.c,v
retrieving revision 1.166
diff -u -p -r1.166 owl.c
--- engine/owl.c        4 Jun 2003 19:16:46 -0000       1.166
+++ engine/owl.c        6 Jun 2003 20:34:09 -0000
@@ -2121,6 +2121,16 @@ do_owl_defend(int str, int *move, int *w
     }
   }
   else {
+    /* In this case we don't recompute eyes. However, to avoid accessing
+     * partially-random data left on stack, we copy eye data from the
+     * previous depth level. It must be reasonably close to the actual
+     * state of eyes.
+     */
+    memcpy(owl->my_eye, owl_stack[owl->restore_from].my_eye,
+          sizeof(owl->my_eye));
+    memcpy(owl->half_eye, owl_stack[owl->restore_from].half_eye,
+          sizeof(owl->half_eye));
+
     vital_moves[0].pos = 0;
     vital_moves[0].value = -1;
     set_eyevalue(&probable_eyes, 0, 0, 0, 0);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]