From 7c2ea1369fc8ff3062ca4ddc9986a4b1f0d9e2fd Mon Sep 17 00:00:00 2001 From: Ryan Pavlik Date: Thu, 15 Apr 2021 13:43:02 -0500 Subject: [PATCH] c/main: Normalize destroy pattern for comp_renderer. --- src/xrt/compositor/main/comp_compositor.c | 5 +---- src/xrt/compositor/main/comp_renderer.c | 10 +++++++++- src/xrt/compositor/main/comp_renderer.h | 4 +++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/xrt/compositor/main/comp_compositor.c b/src/xrt/compositor/main/comp_compositor.c index 7b6c48950..22664b918 100644 --- a/src/xrt/compositor/main/comp_compositor.c +++ b/src/xrt/compositor/main/comp_compositor.c @@ -552,10 +552,7 @@ compositor_destroy(struct xrt_compositor *xc) // Make sure we don't have anything to destroy. comp_compositor_garbage_collect(c); - if (c->r) { - comp_renderer_destroy(c->r); - c->r = NULL; - } + comp_renderer_destroy(&c->r); comp_resources_close(c, &c->nr); diff --git a/src/xrt/compositor/main/comp_renderer.c b/src/xrt/compositor/main/comp_renderer.c index bc2c8e928..8197cc42c 100644 --- a/src/xrt/compositor/main/comp_renderer.c +++ b/src/xrt/compositor/main/comp_renderer.c @@ -120,10 +120,18 @@ comp_renderer_create(struct comp_compositor *c) } void -comp_renderer_destroy(struct comp_renderer *r) +comp_renderer_destroy(struct comp_renderer **ptr_r) { + if (ptr_r == NULL) { + return; + } + struct comp_renderer *r = *ptr_r; + if (r == NULL) { + return; + } renderer_destroy(r); free(r); + *ptr_r = NULL; } /* diff --git a/src/xrt/compositor/main/comp_renderer.h b/src/xrt/compositor/main/comp_renderer.h index 48c28f03f..c1edaaf5a 100644 --- a/src/xrt/compositor/main/comp_renderer.h +++ b/src/xrt/compositor/main/comp_renderer.h @@ -38,11 +38,13 @@ comp_renderer_create(struct comp_compositor *c); /*! * Clean up and free the renderer. * + * Does null checking and sets to null after freeing. + * * @public @memberof comp_renderer * @ingroup comp_main */ void -comp_renderer_destroy(struct comp_renderer *r); +comp_renderer_destroy(struct comp_renderer **ptr_r); /*! * Render frame.