chiark / gitweb /
Tweak a conditional expression in pearl.c to work around a display bug
authorSimon Tatham <anakin@pobox.com>
Fri, 17 Feb 2012 19:07:31 +0000 (19:07 +0000)
committerSimon Tatham <anakin@pobox.com>
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.

[originally from svn r9408]

pearl.c

diff --git a/pearl.c b/pearl.c
index 9037011c2606c5bc3fdae2225a5b32c4f05ecc11..21cca29a80a4ae85d9926c4f1f397a1b4f22124e 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);