star-enclosures-2d

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

commit b447971a2cf98c080e4ee803ea4936d8fd3ba6e3
parent 60b34837cac60477ec0e6744c37a1f33035c4bb4
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Fri, 13 Apr 2018 17:07:11 +0200

BugFix: lacked a sync to push safely.

Diffstat:
Msrc/senc2d_scene_analyze.c | 15+++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/senc2d_scene_analyze.c b/src/senc2d_scene_analyze.c @@ -980,15 +980,17 @@ build_result ids_by_medium = darray_ids_array_data_get(&desc->ids_array_by_medium) + current->medium; - tmp_res = darray_uint_push_back(ids_by_medium, &e); + #pragma omp critical + { + tmp_res = darray_uint_push_back(ids_by_medium, &e); + } + if (tmp_res != RES_OK) *res = tmp_res; if(*res != RES_OK) continue; /* Build side and vertex lists. */ - tmp_res = darray_segment_in_resize(&enc->sides, enc->side_count); - if(*res != RES_OK) continue; + OK2(darray_segment_in_resize(&enc->sides, enc->side_count)); /* Size is just a int */ - tmp_res = darray_vrtx_id_reserve(&enc->vertices, enc->side_count + 1); - if(*res != RES_OK) continue; + OK2(darray_vrtx_id_reserve(&enc->vertices, enc->side_count + 1)); /* New vertex numbering scheme local to the enclosure */ htable_vrtx_id_clear(&vtable); ASSERT(desc->scene->nusegs @@ -1018,7 +1020,8 @@ build_result ASSERT(tmp == darray_vrtx_id_size_get(&enc->vertices)); ASSERT(tmp < VRTX_MAX__); vertice_id[i] = (vrtx_id_t)tmp; - OK2(htable_vrtx_id_set(&vtable, seg_in->vertice_id + i, vertice_id + i)); + OK2(htable_vrtx_id_set(&vtable, seg_in->vertice_id + i, + vertice_id + i)); OK2(darray_vrtx_id_push_back(&enc->vertices, seg_in->vertice_id + i)); ++enc->header.vertices_count; }