http://ftp.x.org/contrib/applications/xscreensaver-3.03.tar.gz
[xscreensaver] / hacks / coral.c
index 74b5120b2609eed4f23c165f9476fb2e5092594f..55186747327297fbe731753507d061b0c3815064 100644 (file)
@@ -21,12 +21,12 @@ static int ncolors = 0;
 static int colorindex = 0;
 static int colorsloth;
 
-static XPoint *walkers;
+static XPoint *walkers = 0;
 static int nwalkers;
 static int width, widthb;
 static int height;
 
-static unsigned int *board;
+static unsigned int *board = 0;
 #define getdot(x,y) (board[(y*widthb)+(x>>5)] &  (1<<(x & 31)))
 #define setdot(x,y) (board[(y*widthb)+(x>>5)] |= (1<<(x & 31)))
 
@@ -47,6 +47,7 @@ init_coral(Display *dpy, Window window)
     width = xgwa.width;
     widthb = ((xgwa.width + 31) >> 5);
     height = xgwa.height;
+    if (board) free(board);
     board = (unsigned int *)calloc(widthb * xgwa.height, sizeof(unsigned int));
     if(!board) exit(1);
     cmap = xgwa.colormap;
@@ -73,6 +74,7 @@ init_coral(Display *dpy, Window window)
     if( density < 1 ) density = 1;
     if( density > 100 ) density = 90; /* more like mold than coral */
     nwalkers = (width*height*density)/100;
+    if (walkers) free(walkers);
     walkers = (XPoint *)calloc(nwalkers, sizeof(XPoint));
     if( (XPoint *)0 == walkers ) exit(1);
 
@@ -225,13 +227,13 @@ coral(Display *dpy, Window window)
 char *progclass = "Coral";
 
 char *defaults[] = {
-    "Coral.background: black",
-    "Coral.foreground: white",
-    "*density: 25",
-    "*seeds: 20", /* too many for 640x480, too few for 1280x1024 */
-    "*delay: 5",
-    "*delay2: 1000",
-    0
+  ".background:        black",
+  ".foreground:        white",
+  "*density:   25",
+  "*seeds:     20", /* too many for 640x480, too few for 1280x1024 */
+  "*delay:     5",
+  "*delay2:    1000",
+  0
 };
 
 XrmOptionDescRec options[] = {