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:
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*