From 2afa0cb369cda8f1000f69d798fe986f27dd30c9 Mon Sep 17 00:00:00 2001 From: Anuj Verma Date: Sat, 11 Jul 2020 10:38:15 +0530 Subject: [PATCH] * src/sdf/ftsdf.c (sdf_generate_coarse_grid): Memory leak. Release the allocated lists for the coarse grid after we are done using them. --- [GSoC]ChangeLog | 7 +++++++ src/sdf/ftsdf.c | 20 +++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/[GSoC]ChangeLog b/[GSoC]ChangeLog index 713eadac4..e8696d192 100644 --- a/[GSoC]ChangeLog +++ b/[GSoC]ChangeLog @@ -1,3 +1,10 @@ +2020-07-11 Anuj Verma + + * src/sdf/ftsdf.c (sdf_generate_coarse_grid): Memory leak. + + Release the allocated lists for the coarse grid after + we are done using them. + 2020-07-11 Anuj Verma [sdf] Completed the coarse grid optimization. diff --git a/src/sdf/ftsdf.c b/src/sdf/ftsdf.c index f8ae7b26c..844d63b75 100644 --- a/src/sdf/ftsdf.c +++ b/src/sdf/ftsdf.c @@ -45,7 +45,7 @@ /* then they will be checked for corner if they have ambiguity. */ #define CORNER_CHECK_EPSILON 32 - #define CG_DIMEN 10 + #define CG_DIMEN 8 /************************************************************************** * @@ -2909,6 +2909,24 @@ } } + /* release the allocated lists */ + for ( i = 0; i < CG_DIMEN * CG_DIMEN; i++ ) + { + SDF_Edge* edge = coarse_grid[i]; + SDF_Edge* temp; + + + while ( edge ) + { + temp = edge; + edge = edge->next; + + sdf_edge_done( memory, &temp ); + } + + coarse_grid[i] = NULL; + } + Exit: return error; }