http://www.jwz.org/xscreensaver/xscreensaver-5.12.tar.gz
[xscreensaver] / hacks / ripples.c
index fac61995060e103740a8c5212a1ce64237189925..e030b1cd1d85f7cba8715e7f7b888803d000983d 100644 (file)
@@ -703,6 +703,7 @@ sinc(struct state *st, double x)
   int i;
   i = (int)(x * TABLE + 0.5);
   if (i >= TABLE) i = (TABLE-1) - (i-(TABLE-1));
+  if (i < 0) return 0.;
   return st->cos_tab[i];
 #elif 0
   return cos(x * M_PI/2);
@@ -732,7 +733,7 @@ add_circle_drop(struct state *st, int x, int y, int radius, int dheight)
       r = cx*cx + cy*cy;
       if (r > r2) break;
       buf[xx + yy*st->width] =
-        (short)(dheight * sinc(st, sqrt(r)/radius));
+        (short)(dheight * sinc(st, (radius > 0) ? sqrt(r)/radius : 0));
     }
 }