chiark / gitweb /
Fix missing error highlights (+ array underrun!) in Pearl.
authorSimon Tatham <anakin@pobox.com>
Fri, 16 Dec 2016 18:33:10 +0000 (18:33 +0000)
committerSimon Tatham <anakin@pobox.com>
Fri, 16 Dec 2016 18:33:10 +0000 (18:33 +0000)
I was accidentally re-checking the value of component_state[comp]
after resetting comp to the special value -1, which caused a failure
to highlight stray path-shaped components if they existed in addition
to a large loop component. (Plus, of course, it's just illegal no
matter what visible behaviour it does or doesn't cause in practice.)

Fixed by adjusting the code to more closely match the version in Loopy
(I wonder how I managed to add two pieces of code in commit b31155b73
without noticing this difference between them).

pearl.c

diff --git a/pearl.c b/pearl.c
index c289ec6ac94af1a918ce9b86e22791bd0016e2d9..4e4290e9af0916b88bfe1d8392c1757ca1aa5dc0 100644 (file)
--- a/pearl.c
+++ b/pearl.c
@@ -1610,8 +1610,6 @@ static void check_completion(game_state *state, int mark)
          */
         for (i = 0; i < w*h; i++) {
             int comp = dsf_canonify(dsf, i);
-            if (component_state[comp] == COMP_PATH)
-                comp = -1; /* part of the 'all paths' quasi-component */
             if ((component_state[comp] == COMP_PATH &&
                  -1 != largest_comp) ||
                 (component_state[comp] == COMP_LOOP &&