star-enclosures-3d

Extract enclosures from 3D geometry
git clone git://git.meso-star.fr/star-enclosures-3d.git
Log | Files | Refs | README | LICENSE

commit 333417de928d5f407180866845b674f17490707b
parent a0ecdeb6e5a6b0c7828443115e6fc6431c9f893f
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Fri, 23 Feb 2018 14:13:01 +0100

Fix descriptor creation.

Could be an uncatched alloc error.

Diffstat:
Msrc/senc_descriptor.c | 9+++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/senc_descriptor.c b/src/senc_descriptor.c @@ -48,21 +48,26 @@ struct senc_descriptor* descriptor_create(struct senc_scene* scn) { struct senc_descriptor* desc; + res_T res = RES_OK; ASSERT(scn); desc = MEM_CALLOC(scn->dev->allocator, 1, sizeof(struct senc_descriptor)); if(desc) { desc->scene = scn; SENC(scene_ref_get(desc->scene)); + ref_init(&desc->ref); darray_triangle_enc_init(scn->dev->allocator, &desc->triangles_enc); /* Enclosure 0 is always defined for infinite */ darray_enclosure_init(scn->dev->allocator, &desc->enclosures); - darray_enclosure_resize(&desc->enclosures, 1); + OK(darray_enclosure_resize(&desc->enclosures, 1)); desc->enclosures_count = 1; desc->triangle_count = scn->nutris; desc->vertices_count = scn->nuverts; - ref_init(&desc->ref); } +end: return desc; +error: + if(desc) SENC(descriptor_ref_put(desc)); + goto end; } struct mem_allocator*