#define LOOPBITS(n,w,h)\
if ((lp->pixmaps[lp->init_bits]=\
- XCreatePixmapFromBitmapData(display,window,(char *)n,w,h,1,0,1))==None){\
- free_loop(display,lp); return;} else {lp->init_bits++;}
+ XCreatePixmapFromBitmapData(MI_DISPLAY(mi),window,(char *)n,w,h,1,0,1))==None){\
+ free_loop(mi); return;} else {lp->init_bits++;}
static int local_neighbors = 0;
}
static void
-free_loop(Display *display, loopstruct * lp)
+free_loop(ModeInfo * mi)
{
+ Display *display = MI_DISPLAY(mi);
+ loopstruct *lp = &loops[MI_SCREEN(mi)];
int shade;
for (shade = 0; shade < lp->init_bits; shade++)
if ((lp->cellList[state] = (CellList *) malloc(sizeof (CellList))) ==
NULL) {
lp->cellList[state] = current;
- free_loop(MI_DISPLAY(mi), lp);
+ free_loop(mi);
return False;
}
lp->cellList[state]->pt.x = col;
ENTRYPOINT void
release_loop (ModeInfo * mi)
{
- if (loops != NULL) {
- int screen;
-
- for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++)
- free_loop(MI_DISPLAY(mi), &loops[screen]);
- (void) free((void *) loops);
- loops = (loopstruct *) NULL;
- }
if (table != NULL) {
(void) free((void *) table);
table = (unsigned int *) NULL;
ENTRYPOINT void
init_loop (ModeInfo * mi)
{
- Display *display = MI_DISPLAY(mi);
int i, size = MI_SIZE(mi);
loopstruct *lp;
stop_warning_about_triangleUnit_already = (void *) &triangleUnit;
- if (loops == NULL) {
- if ((loops = (loopstruct *) calloc(MI_NUM_SCREENS(mi),
- sizeof (loopstruct))) == NULL)
- return;
- }
+ MI_INIT (mi, loops, free_loop);
lp = &loops[MI_SCREEN(mi)];
lp->redrawing = 0;
XGCValues gcv;
if (lp->stippledGC == None) {
gcv.fill_style = FillOpaqueStippled;
- if ((lp->stippledGC = XCreateGC(display, window,
+ if ((lp->stippledGC = XCreateGC(MI_DISPLAY(mi), window,
GCFillStyle, &gcv)) == None) {
- free_loop(display, lp);
+ free_loop(mi);
return;
}
}
}
if ((lp->oldcells = (unsigned char *) calloc(lp->bncols * lp->bnrows,
sizeof (unsigned char))) == NULL) {
- free_loop(display, lp);
+ free_loop(mi);
return;
}
if (lp->newcells != NULL) {
}
if ((lp->newcells = (unsigned char *) calloc(lp->bncols * lp->bnrows,
sizeof (unsigned char))) == NULL) {
- free_loop(display, lp);
+ free_loop(mi);
return;
}
if (!init_table()) {
}
for (i = 0; i < COLORS; i++)
if (!draw_state(mi, i)) {
- free_loop(MI_DISPLAY(mi), lp);
+ free_loop(mi);
return;
}
if (++lp->generation > MI_CYCLES(mi) || lp->dead) {