From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / rd-bomb.c
index 878f5b9b6996ffdad0a49e2333f31a5599634387..4833c370d83d53fbe586080461bf787e8f8aae03 100644 (file)
@@ -145,12 +145,6 @@ pixack_frame(struct state *st, char *pix_buf)
 
   if (!(st->frame%st->epoch_time)) {
     int s;
-    if (0 != st->frame) {
-      int tt = st->epoch_time / 500;
-      if (tt > 15)
-       tt = 15;
-      /*sleep(tt);*/
-    }
          
     for (i = 0; i < st->npix; i++) {
       /* equilibrium */
@@ -236,7 +230,9 @@ pixack_frame(struct state *st, char *pix_buf)
       /* John E. Pearson "Complex Patterns in a Simple System"
         Science, July 1993 */
 
-      uvv = (((r1 * r2) >> bps) * r2) >> bps;
+      /* uvv = (((r1 * r2) >> bps) * r2) >> bps; */
+      /* avoid signed integer overflow */
+      uvv = ((((r1 >> 1)* r2) >> bps) * r2) >> (bps - 1);
       switch (st->reaction) {  /* costs 4% */
       case 0:
        r1 += 4 * (((28 * (mx-r1)) >> 10) - uvv);
@@ -312,7 +308,7 @@ static const char *rd_defaults [] = {
 #else
   "*useSHM:    False",
 #endif
-#ifdef USE_IPHONE
+#ifdef HAVE_MOBILE
   "*ignoreRotation: True",
 #endif
   0
@@ -376,7 +372,6 @@ rd_init (Display *dpy, Window win)
 {
   struct state *st = (struct state *) calloc (1, sizeof(*st));
   XGCValues gcv;
-  int w2;
   int vdepth;
 
   st->dpy = dpy;
@@ -416,7 +411,6 @@ rd_init (Display *dpy, Window win)
 
   }
   st->npix = (st->width + 2) * (st->height + 2);
-  w2 = st->width + 2;
 /*  gcv.function = GXcopy;*/
   st->gc = XCreateGC(st->dpy, win, 0 /*GCFunction*/, &gcv);
   vdepth = visual_depth(DefaultScreenOfDisplay(st->dpy), st->xgwa.visual);