X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fbouboule.c;h=e3379aa3c6e6c0d555a63cf3defb80973d7cbff6;hp=82218fb45c61903c90e7c8ae255ff92c6efa4e85;hb=4361b69d3178d7fc98d0388f9a223af6c2651aba;hpb=d6b0217f2417bd19187f0ebc389d6c5c2233b11c diff --git a/hacks/bouboule.c b/hacks/bouboule.c index 82218fb4..e3379aa3 100644 --- a/hacks/bouboule.c +++ b/hacks/bouboule.c @@ -88,6 +88,7 @@ static const char sccsid[] = "@(#)bouboule.c 4.00 97/01/01 xlockmore"; "*ignoreRotation: True \n" # define SMOOTH_COLORS +# define release_bouboule 0 # define bouboule_handle_event 0 # include "xlockmore.h" /* from the xscreensaver distribution */ #else /* !STANDALONE */ @@ -297,6 +298,8 @@ sinfree(SinVariable * point) } } +static void free_bouboule(ModeInfo * mi); + /***************/ ENTRYPOINT void @@ -315,11 +318,7 @@ init_bouboule(ModeInfo * mi) int i; double theta, omega; - if (starfield == NULL) { - if ((starfield = (StarField *) calloc(MI_NUM_SCREENS(mi), - sizeof (StarField))) == NULL) - return; - } + MI_INIT (mi, starfield, free_bouboule); sp = &starfield[MI_SCREEN(mi)]; sp->width = MI_WIN_WIDTH(mi); @@ -803,39 +802,31 @@ draw_bouboule(ModeInfo * mi) } } -ENTRYPOINT void -release_bouboule(ModeInfo * mi) +static void +free_bouboule(ModeInfo * mi) { - if (starfield != NULL) { - int screen; - - for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) { - StarField *sp = &starfield[screen]; - - if (sp->star) - (void) free((void *) sp->star); - if (sp->xarc) - (void) free((void *) sp->xarc); - if (sp->xarcleft) - (void) free((void *) sp->xarcleft); + StarField *sp = &starfield[MI_SCREEN(mi)]; + + if (sp->star) + (void) free((void *) sp->star); + if (sp->xarc) + (void) free((void *) sp->xarc); + if (sp->xarcleft) + (void) free((void *) sp->xarcleft); #if ((USEOLDXARCS == 1) || (ADAPT_ERASE == 1)) - if (sp->oldxarc) - (void) free((void *) sp->oldxarc); - if (sp->oldxarcleft) - (void) free((void *) sp->oldxarcleft); + if (sp->oldxarc) + (void) free((void *) sp->oldxarc); + if (sp->oldxarcleft) + (void) free((void *) sp->oldxarcleft); #endif - sinfree(&(sp->x)); - sinfree(&(sp->y)); - sinfree(&(sp->z)); - sinfree(&(sp->sizex)); - sinfree(&(sp->sizey)); - sinfree(&(sp->thetax)); - sinfree(&(sp->thetay)); - sinfree(&(sp->thetaz)); - } - (void) free((void *) starfield); - starfield = NULL; - } + sinfree(&(sp->x)); + sinfree(&(sp->y)); + sinfree(&(sp->z)); + sinfree(&(sp->sizex)); + sinfree(&(sp->sizey)); + sinfree(&(sp->thetax)); + sinfree(&(sp->thetay)); + sinfree(&(sp->thetaz)); } ENTRYPOINT void