From 3b57ce1013ff8638dcf0e7d9622fce15f3ddbab3 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sun, 14 Feb 2016 15:42:58 +0000 Subject: Free shared_pens list on tree destroy --- amiga/object.c | 2 +- amiga/tree.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/amiga/object.c b/amiga/object.c index 6fedb9737..8da16394e 100755 --- a/amiga/object.c +++ b/amiga/object.c @@ -53,7 +53,7 @@ void ami_object_fini(void) } /* Slightly abstract MinList initialisation */ -void ami_NewMinList(struct MinList *list) +static void ami_NewMinList(struct MinList *list) { if(list == NULL) return; NewnsList((struct nsList *)list); diff --git a/amiga/tree.c b/amiga/tree.c index b51615a63..ba5f66260 100644 --- a/amiga/tree.c +++ b/amiga/tree.c @@ -130,6 +130,7 @@ static void ami_tree_get_window_dimensions(int *width, int *height, void *data); void ami_tree_destroy(struct treeview_window *twin) { tree_delete(twin->tree); + FreeVec(twin->shared_pens); FreeVec(twin); } @@ -733,8 +734,6 @@ void ami_tree_open(struct treeview_window *twin,int type) twin->scrollerhook.h_Entry = (void *)ami_tree_scroller_hook; twin->scrollerhook.h_Data = twin; - twin->shared_pens = ami_AllocMinList(); - twin->globals.shared_pens = twin->shared_pens; ami_init_layers(&twin->globals, 0, 0, false); ami_tree_menu(twin); @@ -889,7 +888,6 @@ void ami_tree_close(struct treeview_window *twin) DelObjectNoFree(twin->node); ami_plot_release_pens(twin->shared_pens); ami_free_layers(&twin->globals); - FreeVec(twin->shared_pens); for(i=0;imenu_name[i] && (twin->menu_name[i] != NM_BARLABEL)) @@ -1459,9 +1457,12 @@ struct treeview_window *ami_tree_create(int flags, return NULL; } + twin->shared_pens = ami_AllocMinList(); + twin->globals.shared_pens = twin->shared_pens; + twin->ssl_data = ssl_data; twin->tree = tree_create(flags, &ami_tree_callbacks, twin); - + return twin; } -- cgit v1.2.3