added parameter to gfxfontlist_free()
authorkramm <kramm>
Fri, 26 Oct 2007 14:39:18 +0000 (14:39 +0000)
committerkramm <kramm>
Fri, 26 Oct 2007 14:39:18 +0000 (14:39 +0000)
lib/gfxtools.c
lib/gfxtools.h

index dd6b9ad..dd8d2b7 100644 (file)
@@ -25,6 +25,7 @@
 #include <math.h>
 #include <assert.h>
 #include "gfxtools.h"
+#include "gfxfont.h"
 
 typedef struct _linedraw_internal
 {
@@ -772,12 +773,15 @@ gfxfontlist_t*gfxfontlist_addfont(gfxfontlist_t*list, gfxfont_t*font)
        return l;
     }
 }
-void gfxfontlist_free(gfxfontlist_t*list)
+void gfxfontlist_free(gfxfontlist_t*list, char deletefonts)
 {
     gfxfontlist_t*l = list;
     while(l) {
        gfxfontlist_t*next = l;
        memset(l, 0, sizeof(*l));
+       if(l->font) {
+           gfxfont_free(l->font);
+       }
        free(l);
        l = next;
     }
index b0f9ce8..d88b98f 100644 (file)
@@ -81,7 +81,7 @@ gfxfontlist_t* gfxfontlist_create();
 gfxfontlist_t*gfxfontlist_addfont(gfxfontlist_t*list, gfxfont_t*font);
 gfxfont_t*gfxfontlist_findfont(gfxfontlist_t*list, char*id);
 char gfxfontlist_hasfont(gfxfontlist_t*list, gfxfont_t*font);
-void gfxfontlist_free(gfxfontlist_t*list);
+void gfxfontlist_free(gfxfontlist_t*list, char deletefonts);
 
 gfxline_t*gfxline_makerectangle(int x1, int y1, int x2, int y2);
 void gfxline_show(gfxline_t*line, FILE*fi);