Skip to content

Commit 8b555b7

Browse files
committed
merge duplicated code into a utility function
1 parent e0127f3 commit 8b555b7

2 files changed

Lines changed: 17 additions & 22 deletions

File tree

include/iso_alloc_internal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,7 @@ INTERNAL_HIDDEN INLINE int64_t check_canary_no_abort(iso_alloc_zone *zone, void
515515
INTERNAL_HIDDEN INLINE uint64_t _get_backtrace_hash(uint32_t frames);
516516
INTERNAL_HIDDEN INLINE size_t next_pow2(size_t sz);
517517
INTERNAL_HIDDEN INLINE void flush_thread_zone_cache(void);
518+
INTERNAL_HIDDEN INLINE void populate_thread_zone_cache(iso_alloc_zone *zone);
518519
INTERNAL_HIDDEN FLATTEN void iso_free_chunk_from_zone(iso_alloc_zone *zone, void *p, bool permanent);
519520
INTERNAL_HIDDEN iso_alloc_zone *is_zone_usable(iso_alloc_zone *zone, size_t size);
520521
INTERNAL_HIDDEN iso_alloc_zone *iso_find_zone_fit(size_t size);

src/iso_alloc.c

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,6 +1005,20 @@ INTERNAL_HIDDEN INLINE size_t next_pow2(size_t sz) {
10051005
return sz + 1;
10061006
}
10071007

1008+
INTERNAL_HIDDEN INLINE void populate_thread_zone_cache(iso_alloc_zone *zone) {
1009+
#if THREAD_SUPPORT && THREAD_ZONE_CACHE
1010+
if(thread_zone_cache_count < THREAD_ZONE_CACHE_SZ) {
1011+
thread_zone_cache[thread_zone_cache_count].zone = zone;
1012+
thread_zone_cache[thread_zone_cache_count].chunk_size = zone->chunk_size;
1013+
thread_zone_cache_count++;
1014+
} else {
1015+
thread_zone_cache_count = 0;
1016+
thread_zone_cache[thread_zone_cache_count].zone = zone;
1017+
thread_zone_cache[thread_zone_cache_count].chunk_size = zone->chunk_size;
1018+
}
1019+
#endif
1020+
}
1021+
10081022
INTERNAL_HIDDEN void *_iso_alloc(iso_alloc_zone *zone, size_t size) {
10091023
LOCK_ROOT();
10101024

@@ -1134,17 +1148,7 @@ INTERNAL_HIDDEN void *_iso_alloc(iso_alloc_zone *zone, size_t size) {
11341148
void *p = _iso_alloc_bitslot_from_zone(free_bit_slot, zone);
11351149
MASK_ZONE_PTRS(zone);
11361150

1137-
#if THREAD_SUPPORT && THREAD_ZONE_CACHE
1138-
if(thread_zone_cache_count < THREAD_ZONE_CACHE_SZ) {
1139-
thread_zone_cache[thread_zone_cache_count].zone = zone;
1140-
thread_zone_cache[thread_zone_cache_count].chunk_size = zone->chunk_size;
1141-
thread_zone_cache_count++;
1142-
} else {
1143-
thread_zone_cache_count = 0;
1144-
thread_zone_cache[thread_zone_cache_count].zone = zone;
1145-
thread_zone_cache[thread_zone_cache_count].chunk_size = zone->chunk_size;
1146-
}
1147-
#endif
1151+
populate_thread_zone_cache(zone);
11481152

11491153
UNLOCK_ROOT();
11501154
return p;
@@ -1481,17 +1485,7 @@ INTERNAL_HIDDEN FLATTEN void iso_free_chunk_from_zone(iso_alloc_zone *zone, void
14811485

14821486
POISON_ZONE_CHUNK(zone, p);
14831487

1484-
#if THREAD_SUPPORT && THREAD_ZONE_CACHE
1485-
if(thread_zone_cache_count < THREAD_ZONE_CACHE_SZ) {
1486-
thread_zone_cache[thread_zone_cache_count].zone = zone;
1487-
thread_zone_cache[thread_zone_cache_count].chunk_size = zone->chunk_size;
1488-
thread_zone_cache_count++;
1489-
} else {
1490-
thread_zone_cache_count = 0;
1491-
thread_zone_cache[thread_zone_cache_count].zone = zone;
1492-
thread_zone_cache[thread_zone_cache_count].chunk_size = zone->chunk_size;
1493-
}
1494-
#endif
1488+
populate_thread_zone_cache(zone);
14951489

14961490
return;
14971491
}

0 commit comments

Comments
 (0)