Commit Diff


commit - 2ec48bbca32b5483b746cac1f2e6121171e33544
commit + ca63c078d9b658b2f8d99c8e3e1a2389d0e7f6d7
blob - 50b96fd885f4f60e9fdb570a1572444bd7458b96
blob + c1fbe5a2ab15de2a21ef65eed46c9fda52c7d029
--- src/libdraw/alloc.c
+++ src/libdraw/alloc.c
@@ -196,7 +196,7 @@ _freeimage1(Image *i)
 	Display *d;
 	Image *w;
 
-	if(i == 0)
+	if(i == 0 || i->display == 0)
 		return 0;
 	/* make sure no refresh events occur on this if we block in the write */
 	d = i->display;
blob - ba32e775b6eeefaa2c458a59f07379b26e2467ce
blob + fa50b6efecfac49674f35c9ef22a819c83982b31
--- src/libdraw/buildfont.c
+++ src/libdraw/buildfont.c
@@ -129,7 +129,7 @@ freefont(Font *f)
 	}
 	for(i=0; i<f->nsubf; i++){
 		s = f->subf[i].f;
-		if(s && s!=display->defaultsubfont)
+		if(s && (!display || s!=display->defaultsubfont))
 			freesubfont(s);
 	}
 	freeimage(f->cacheimage);
blob - 7aa649e849489ebf5d071b684d84e10c3dda1dfc
blob + 8370606e1f0eeafbc4df22d562572e82463bd961
--- src/libdraw/font.c
+++ src/libdraw/font.c
@@ -132,7 +132,7 @@ agefont(Font *f)
 			if(s->age){
 				if(s->age<SUBFAGE && s->cf->name != nil){
 					/* clean up */
-					if(s->f != display->defaultsubfont)
+					if(display==nil || s->f != display->defaultsubfont)
 						freesubfont(s->f);
 					s->cf = nil;
 					s->f = nil;