summaryrefslogtreecommitdiff
path: root/frontends/amiga/plotters.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2016-12-06 23:39:04 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2016-12-06 23:39:04 +0000
commit74d7c2d2c2b2161701c1f0258bbfc7feb753ac1e (patch)
tree33116babdc5bb108fc64efe4c0c0b71a4dd9ad78 /frontends/amiga/plotters.c
parenta440907b78f430ff7428e48f6fb0532db5f00cd5 (diff)
downloadnetsurf-74d7c2d2c2b2161701c1f0258bbfc7feb753ac1e.tar.gz
netsurf-74d7c2d2c2b2161701c1f0258bbfc7feb753ac1e.tar.bz2
Ensure we free the pen list memory
Diffstat (limited to 'frontends/amiga/plotters.c')
-rw-r--r--frontends/amiga/plotters.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/frontends/amiga/plotters.c b/frontends/amiga/plotters.c
index 6bae6346a..7c8e8d6e7 100644
--- a/frontends/amiga/plotters.c
+++ b/frontends/amiga/plotters.c
@@ -273,20 +273,21 @@ void ami_plot_release_pens(struct MinList *shared_pens)
struct ami_plot_pen *nnode;
if(shared_pens == NULL) return;
- if(IsMinListEmpty(shared_pens)) return;
- node = (struct ami_plot_pen *)GetHead((struct List *)shared_pens);
-
- do {
- nnode = (struct ami_plot_pen *)GetSucc((struct Node *)node);
- ReleasePen(scrn->ViewPort.ColorMap, node->pen);
- Remove((struct Node *)node);
- ami_memory_itempool_free(pool_pens, node, sizeof(struct ami_plot_pen));
- } while((node = nnode));
+ if(IsMinListEmpty(shared_pens) == NULL) {
+ node = (struct ami_plot_pen *)GetHead((struct List *)shared_pens);
+ do {
+ nnode = (struct ami_plot_pen *)GetSucc((struct Node *)node);
+ ReleasePen(scrn->ViewPort.ColorMap, node->pen);
+ Remove((struct Node *)node);
+ ami_memory_itempool_free(pool_pens, node, sizeof(struct ami_plot_pen));
+ } while((node = nnode));
+ }
glob->apen = 0x00000000;
glob->open = 0x00000000;
glob->apen_num = -1;
glob->open_num = -1;
+ free(shared_pens);
}
static void ami_plot_setapen(struct RastPort *rp, ULONG colr)