@@ -50,9 +50,9 @@ typedef struct tracker_alloc_info_t {
50
50
// in the next level of map
51
51
// falling within the current range
52
52
size_t n_children ;
53
- #ifndef NDEBUG
54
- size_t is_freed ;
55
- #endif /* NDEBUG */
53
+ #if !defined( NDEBUG ) && defined( UMF_DEVELOPER_MODE )
54
+ uint64_t is_freed ;
55
+ #endif
56
56
} tracker_alloc_info_t ;
57
57
58
58
typedef struct tracker_ipc_info_t {
@@ -194,9 +194,9 @@ umfMemoryTrackerAddAtLevel(umf_memory_tracker_handle_t hTracker, int level,
194
194
value -> pool = pool ;
195
195
value -> size = size ;
196
196
value -> n_children = 0 ;
197
- #ifndef NDEBUG
197
+ #if !defined( NDEBUG ) && defined( UMF_DEVELOPER_MODE )
198
198
value -> is_freed = 0 ;
199
- #endif /* NDEBUG */
199
+ #endif
200
200
201
201
assert (level < MAX_LEVELS_OF_ALLOC_SEGMENT_MAP );
202
202
int ret = critnib_insert (hTracker -> alloc_segments_map [level ],
@@ -276,10 +276,12 @@ static umf_result_t umfMemoryTrackerAdd(umf_memory_tracker_handle_t hTracker,
276
276
continue ;
277
277
}
278
278
279
- #ifndef NDEBUG
279
+ #if !defined( NDEBUG ) && defined( UMF_DEVELOPER_MODE )
280
280
// make sure rvalue is not freed
281
- assert (rvalue -> is_freed != 0xDEADBEEF );
282
- #endif /* NDEBUG */
281
+ uint64_t is_freed ;
282
+ utils_atomic_load_acquire_u64 (& rvalue -> is_freed , & is_freed );
283
+ assert (is_freed != 0xDEADBEEF );
284
+ #endif
283
285
284
286
utils_atomic_load_acquire_u64 ((uint64_t * )& rvalue -> size , & rsize );
285
287
@@ -1354,10 +1356,10 @@ void umfTrackingMemoryProviderGetUpstreamProvider(
1354
1356
1355
1357
static void free_leaf (void * leaf_allocator , void * ptr ) {
1356
1358
if (ptr ) {
1357
- #ifndef NDEBUG
1359
+ #if !defined( NDEBUG ) && defined( UMF_DEVELOPER_MODE )
1358
1360
tracker_alloc_info_t * value = (tracker_alloc_info_t * )ptr ;
1359
- value -> is_freed = 0xDEADBEEF ;
1360
- #endif /* NDEBUG */
1361
+ utils_atomic_store_release_u64 ( & value -> is_freed , 0xDEADBEEF ) ;
1362
+ #endif
1361
1363
umf_ba_free (leaf_allocator , ptr );
1362
1364
}
1363
1365
}
0 commit comments