From 82fb06579507a299aaa2c4d7d918a2beaae77ce1 Mon Sep 17 00:00:00 2001 From: nick black Date: Wed, 2 Jun 2021 21:34:50 -0400 Subject: [PATCH] only manage ncvisual in toplayer with no media implementation #1711 --- src/lib/visual.c | 11 ++++++----- src/media/ffmpeg.c | 4 ++++ src/media/none.cpp | 4 ---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/lib/visual.c b/src/lib/visual.c index ed09f6fe9..ae3b732b6 100644 --- a/src/lib/visual.c +++ b/src/lib/visual.c @@ -962,13 +962,14 @@ ncvisual* ncvisual_from_plane(const ncplane* n, ncblitter_e blit, int begy, int void ncvisual_destroy(ncvisual* ncv){ if(ncv){ - if(visual_implementation){ + if(visual_implementation == NULL){ + if(ncv->owndata){ + free(ncv->data); + } + free(ncv); + }else{ visual_implementation->visual_destroy(ncv); } - if(ncv->owndata){ - free(ncv->data); - } - free(ncv); } } diff --git a/src/media/ffmpeg.c b/src/media/ffmpeg.c index f9e1d5e36..677549603 100644 --- a/src/media/ffmpeg.c +++ b/src/media/ffmpeg.c @@ -647,6 +647,10 @@ void ffmpeg_details_destroy(ncvisual_details* deets){ void ffmpeg_destroy(ncvisual* ncv){ if(ncv){ ffmpeg_details_destroy(ncv->details); + if(ncv->owndata){ + free(ncv->data); + } + free(ncv); } } diff --git a/src/media/none.cpp b/src/media/none.cpp index 45fae0e75..79a9cb8e1 100644 --- a/src/media/none.cpp +++ b/src/media/none.cpp @@ -78,10 +78,6 @@ void none_details_seed(ncvisual* ncv){ (void)ncv; } -void none_details_destroy(struct ncvisual_details* ncv){ - (void)ncv; -} - int none_init(int loglevel __attribute__ ((unused))) { return 0; // allow success here }