-/* xscreensaver, Copyright (c) 1997 Jamie Zawinski <jwz@netscape.com>
+/* xscreensaver, Copyright (c) 1997 Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
free_colors(Display *dpy, Colormap cmap, XColor *colors, int ncolors)
{
int i;
- unsigned long *pixels = (unsigned long *) malloc(sizeof(*pixels) * ncolors);
- for (i = 0; i < ncolors; i++)
- pixels[i] = colors[i].pixel;
- XFreeColors (dpy, cmap, pixels, ncolors, 0L);
- free(pixels);
+ if (ncolors > 0)
+ {
+ unsigned long *pixels = (unsigned long *)
+ malloc(sizeof(*pixels) * ncolors);
+ for (i = 0; i < ncolors; i++)
+ pixels[i] = colors[i].pixel;
+ XFreeColors (dpy, cmap, pixels, ncolors, 0L);
+ free(pixels);
+ }
}
while (got < desired
&& requested > 0)
{
- if (desired - got > requested)
+ if (desired - got < requested)
requested = desired - got;
if (XAllocColorCells (dpy, cmap, False, 0, 0, new_pixels, requested))
if (dh < 0) dh = -dh;
if (dh > 0.5) dh = 0.5 - (dh - 0.5);
distance = sqrt ((dh * dh) +
- ((s[j] - s[i]) * (s[j] - v[i])) +
+ ((s[j] - s[i]) * (s[j] - s[i])) +
((v[j] - v[i]) * (v[j] - v[i])));
if (distance < 0.2)
goto REPICK_THIS_COLOR;
0, S, V,
359, S, V,
colors, &ncolors,
- False, True, wanted_writable);
+ False, True,
+ (writable_pP && *writable_pP));
/* If we tried for writable cells and got none, try for non-writable. */
if (allocate_p && *ncolorsP == 0 && writable_pP && *writable_pP)