@@ -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+
10081022INTERNAL_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