From cf570a3d3f50b91334f1c5fb5953bb3cb7e3da6f Mon Sep 17 00:00:00 2001 From: nick black Date: Sat, 23 Oct 2021 06:17:32 -0400 Subject: [PATCH] [fission] kill background plane on exit --- src/demo/fission.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/demo/fission.c b/src/demo/fission.c index 63e6dbd9e..b71a96d16 100644 --- a/src/demo/fission.c +++ b/src/demo/fission.c @@ -99,6 +99,7 @@ shuffle_in(struct ncplane** arr, int count, struct ncplane* n){ // you played yourself https://genius.com/De-la-soul-fallin-lyrics int fission_demo(struct notcurses* nc){ + struct ncplane* npl = NULL; int dimx, dimy; struct ncplane* stdn = notcurses_stddim_yx(nc, &dimy, &dimx); size_t usesize = sizeof(bool) * dimy * dimx; @@ -197,32 +198,34 @@ int fission_demo(struct notcurses* nc){ ncplane_erase(stdn); #ifndef DFSG_BUILD if(notcurses_canopen_images(nc)){ - char* path = find_data("lamepatents.jpg"); - struct ncvisual* ncv = ncvisual_from_file(path); - free(path); - if(ncv == NULL){ - goto err; - } - struct ncvisual_options vopts = { - .n = stdn, - .scaling = NCSCALE_STRETCH, - .flags = NCVISUAL_OPTION_CHILDPLANE, - }; - if(ncvisual_blit(nc, ncv, &vopts) == NULL){ + char* path = find_data("lamepatents.jpg"); + struct ncvisual* ncv = ncvisual_from_file(path); + free(path); + if(ncv == NULL){ + goto err; + } + struct ncvisual_options vopts = { + .n = stdn, + .scaling = NCSCALE_STRETCH, + .flags = NCVISUAL_OPTION_CHILDPLANE, + }; + if((npl = ncvisual_blit(nc, ncv, &vopts)) == NULL){ + ncvisual_destroy(ncv); + goto err; + } + assert(ncvisual_decode(ncv) == 1); ncvisual_destroy(ncv); - goto err; - } - assert(ncvisual_decode(ncv) == 1); - ncvisual_destroy(ncv); } #endif int ret = drop_bricks(nc, arr, arrcount); free(arr); free(usemap); + ncplane_destroy(npl); return ret; err: free(usemap); free(arr); + ncplane_destroy(npl); return -1; }