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:
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;
}