stardis

Perform coupled heat transfer calculations
git clone git://git.meso-star.fr/stardis.git
Log | Files | Refs | README | LICENSE

commit 6192e2e85b627339ee1f28076b38a3915e907c82
parent 3c5227fc91a28504bc507e841ef4a534fa36e125
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Mon,  7 Feb 2022 17:53:31 +0100

Fix a crash when releasing data on an exit-on-error path

Diffstat:
Msrc/stardis-app.c | 5++++-
Msrc/stardis-app.h | 1+
2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/stardis-app.c b/src/stardis-app.c @@ -247,6 +247,7 @@ stardis_init stardis->trad = STARDIS_DEFAULT_TRAD; stardis->trad_ref = STARDIS_DEFAULT_TRAD_REFERENCE; stardis->trad_def = 0; + stardis->geometry_initialized = 0; d2(stardis->t_range, INF, -INF); stardis->dump_paths = SDIS_HEAT_PATH_NONE; if(args->dump_paths & DUMP_ERROR) @@ -271,6 +272,7 @@ stardis_init ERR(init_geometry(stardis->logger, stardis->allocator, stardis->verbose, &stardis->geometry)); + stardis->geometry_initialized = 1; if(args->mode & MODE_IR_COMPUTE) { ERR(parse_camera(stardis->logger, args->camera, stardis)); @@ -451,7 +453,8 @@ stardis_release release_description(d, stardis->allocator); } darray_descriptions_release(&stardis->descriptions); - release_geometry(&stardis->geometry); + if(stardis->geometry_initialized) + release_geometry(&stardis->geometry); darray_size_t_release(&stardis->compute_surface.primitives); darray_sides_release(&stardis->compute_surface.sides); darray_uint_release(&stardis->compute_surface.err_triangles); diff --git a/src/stardis-app.h b/src/stardis-app.h @@ -808,6 +808,7 @@ struct stardis { unsigned undefined_medium_behind_boundary_id; int dump_paths; int verbose; + int geometry_initialized; }; static INLINE unsigned