commit f3b5f1586153fd7588b937c544eebad441d127f1
parent 7cd0a118a05c25332792fcb754c006f5e7fafa86
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Thu, 23 Feb 2023 15:23:16 +0100
BugFix: wrong htable modification
Diffstat:
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/scpr_intersector.c b/src/scpr_intersector.c
@@ -260,7 +260,7 @@ register_segment_interaction
{
res_T res = RES_OK;
struct intersector_segment_pair pair;
- unsigned char interact, *pinteract;
+ unsigned char *pinteract;
ASSERT(intersector);
if(seg_idx1 != seg_idx2) {
@@ -271,15 +271,17 @@ register_segment_interaction
pinteract =
htable_interacting_segments_find(&intersector->interacting_segments, &pair);
if(pinteract || allow_pair_creation) {
+ unsigned char interact;
if(!pinteract) { /* First occurence of this pair: create empty record */
- pinteract = &interact;
- interact = NO_INTERACTION;
+ interact = (unsigned char)inter;
+ } else {
+ ASSERT((*pinteract | inter) < UCHAR_MAX);
+ interact = (unsigned char)(*pinteract | inter);
}
+
/* Register this interaction */
- ASSERT((*pinteract | inter) < UCHAR_MAX);
- *pinteract = (unsigned char)(*pinteract | inter);
ERR(htable_interacting_segments_set(&intersector->interacting_segments,
- &pair, pinteract));
+ &pair, &interact));
}
}