Tweak a conditional expression in pearl.c to work around a display bug
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 17 Feb 2012 19:07:31 +0000 (19:07 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Fri, 17 Feb 2012 19:07:31 +0000 (19:07 +0000)
in the Java build - which turns out to be a JVM bug in OpenJDK 6,
causing the NestedVM rendition of the expression (i==1?3:4) to be
mis-JITed. OpenJDK 7 appears not to do that any more, but this
equivalent (for these purposes) rephrasing should perturb the code
just enough to dodge the problem.

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9408 cda61777-01e9-0310-a592-d414129be87e

pearl.c

diff --git a/pearl.c b/pearl.c
index 9037011..21cca29 100644 (file)
--- a/pearl.c
+++ b/pearl.c
@@ -2279,7 +2279,7 @@ static void draw_square(drawing *dr, game_drawstate *ds, game_ui *ui,
     /* Draw a clue, if present */
     if (clue != NOCLUE) {
         int c = (lflags & DS_FLASH) ? COL_FLASH :
-                (clue == CORNER) ? COL_BLACK : COL_WHITE;
+                (clue == STRAIGHT) ? COL_WHITE : COL_BLACK;
 
         if (lflags & DS_ERROR_CLUE) /* draw a bigger 'error' clue circle. */
             draw_circle(dr, cx, cy, TILE_SIZE*3/8, COL_ERROR, COL_ERROR);