diff --git a/core/box/pool_api.inc.h b/core/box/pool_api.inc.h index f9e52dfc..af9645a8 100644 --- a/core/box/pool_api.inc.h +++ b/core/box/pool_api.inc.h @@ -384,6 +384,7 @@ static inline void* hak_pool_try_alloc_v2_impl(size_t size, uintptr_t site_id) { } HKM_TIME_START(t_refill); struct timespec ts_rf; int rf = hkm_prof_begin(&ts_rf); + (void)ts_rf; (void)rf; int ok = refill_freelist(class_idx, shard_idx); HKM_TIME_END(HKM_CAT_POOL_REFILL, t_refill); hkm_prof_end(rf, HKP_POOL_REFILL, &ts_rf); @@ -493,8 +494,16 @@ static inline int hak_pool_mid_lookup_v2_impl(void* ptr, size_t* out_size) { } static inline void hak_pool_free_fast_v2_impl(void* ptr, uintptr_t site_id) { - if (!ptr || !g_pool.initialized) return; if (g_mf2_enabled) { MidPage* page = mf2_addr_to_page(ptr); if (page) { mf2_free(ptr); return; } } - MidPageDesc* d = mid_desc_lookup(ptr); if (!d) return; size_t sz = g_class_sizes[(int)d->class_idx]; if (sz == 0) return; hak_pool_free(ptr, sz, site_id); + if (!ptr || !g_pool.initialized) return; + if (g_mf2_enabled) { + MidPage* page = mf2_addr_to_page(ptr); + if (page) { mf2_free(ptr); return; } + } + MidPageDesc* d = mid_desc_lookup(ptr); + if (!d) return; + size_t sz = g_class_sizes[(int)d->class_idx]; + if (sz == 0) return; + hak_pool_free(ptr, sz, site_id); } @@ -749,6 +758,7 @@ static inline void* hak_pool_try_alloc_v1_impl(size_t size, uintptr_t site_id) { } HKM_TIME_START(t_refill); struct timespec ts_rf; int rf = hkm_prof_begin(&ts_rf); + (void)ts_rf; (void)rf; int ok = refill_freelist(class_idx, shard_idx); HKM_TIME_END(HKM_CAT_POOL_REFILL, t_refill); hkm_prof_end(rf, HKP_POOL_REFILL, &ts_rf); @@ -959,8 +969,16 @@ static inline int hak_pool_mid_lookup_v1_impl(void* ptr, size_t* out_size) { } static inline void hak_pool_free_fast_v1_impl(void* ptr, uintptr_t site_id) { - if (!ptr || !g_pool.initialized) return; if (g_mf2_enabled) { MidPage* page = mf2_addr_to_page(ptr); if (page) { mf2_free(ptr); return; } } - MidPageDesc* d = mid_desc_lookup(ptr); if (!d) return; size_t sz = g_class_sizes[(int)d->class_idx]; if (sz == 0) return; hak_pool_free(ptr, sz, site_id); + if (!ptr || !g_pool.initialized) return; + if (g_mf2_enabled) { + MidPage* page = mf2_addr_to_page(ptr); + if (page) { mf2_free(ptr); return; } + } + MidPageDesc* d = mid_desc_lookup(ptr); + if (!d) return; + size_t sz = g_class_sizes[(int)d->class_idx]; + if (sz == 0) return; + hak_pool_free(ptr, sz, site_id); } // --- Public wrappers (env-gated) ---------------------------------------------- diff --git a/core/box/pool_init_api.inc.h b/core/box/pool_init_api.inc.h index 950b9b0f..25873b82 100644 --- a/core/box/pool_init_api.inc.h +++ b/core/box/pool_init_api.inc.h @@ -7,6 +7,7 @@ static pthread_once_t hak_pool_init_once_control = PTHREAD_ONCE_INIT; static void hak_pool_init_impl(void) { HAKMEM_LOG("[Pool] hak_pool_init_impl() EXECUTING - Bridge class fix applied\n"); const FrozenPolicy* pol = hkm_policy_get(); + (void)pol; // Phase 6.21 CRITICAL FIX: Bridge classes are hardcoded in g_class_sizes, // NOT from Policy. DO NOT overwrite them with 0! diff --git a/core/box/pool_mf2_adoption.inc.h b/core/box/pool_mf2_adoption.inc.h index 56ab27f7..7ee99033 100644 --- a/core/box/pool_mf2_adoption.inc.h +++ b/core/box/pool_mf2_adoption.inc.h @@ -74,6 +74,7 @@ static bool mf2_try_adopt_pending(MF2_ThreadPages* me, int class_idx) { // Try to transfer ownership using CAS pthread_t old_owner = page->owner_tid; + (void)old_owner; pthread_t new_owner = pthread_self(); // Note: pthread_t may not be atomic-compatible on all platforms @@ -92,6 +93,10 @@ static bool mf2_try_adopt_pending(MF2_ThreadPages* me, int class_idx) { // Drain remote frees int drained = mf2_drain_remote_frees(page); + (void)drained; + (void)pre_remote; + (void)pre_free; + (void)pre_freelist; // DEBUG: Log result (first 10 samples) if (sample_idx < 10) { @@ -126,4 +131,3 @@ static bool mf2_try_adopt_pending(MF2_ThreadPages* me, int class_idx) { return false; // No adoptable pages found } - diff --git a/core/box/pool_mf2_helpers.inc.h b/core/box/pool_mf2_helpers.inc.h index 74925bed..bc777eda 100644 --- a/core/box/pool_mf2_helpers.inc.h +++ b/core/box/pool_mf2_helpers.inc.h @@ -51,6 +51,7 @@ static inline bool mf2_try_drain_and_activate(MF2_ThreadPages* tp, int class_idx // Drain remote frees int drained = mf2_drain_remote_frees(page); + (void)drained; // If page has freelist after drain, make it active immediately if (page->freelist) { @@ -104,6 +105,7 @@ static bool mf2_try_drain_active_remotes(MF2_ThreadPages* tp, int class_idx) { atomic_fetch_add(&g_mf2_slow_found_remote, 1); int drained = mf2_drain_remote_frees(page); (void)drained; + (void)drained; if (drained > 0 && page->freelist) { atomic_fetch_add(&g_mf2_drain_success, 1); return true; // Success! Active page now has freelist diff --git a/core/box/ss_tls_bind_box.h b/core/box/ss_tls_bind_box.h index be4202c6..1b5ad9ef 100644 --- a/core/box/ss_tls_bind_box.h +++ b/core/box/ss_tls_bind_box.h @@ -66,6 +66,7 @@ static inline int ss_tls_bind_one(int class_idx, // We must explicitly set it to the requested class to avoid C0/C7 confusion. TinySlabMeta* meta = &ss->slabs[slab_idx]; uint8_t old_cls = meta->class_idx; + (void)old_cls; meta->class_idx = (uint8_t)class_idx; #if !HAKMEM_BUILD_RELEASE if (class_idx == 7 && old_cls != class_idx) { diff --git a/core/hakmem_pool.c b/core/hakmem_pool.c index 62d0d8ac..f5ae0098 100644 --- a/core/hakmem_pool.c +++ b/core/hakmem_pool.c @@ -1032,7 +1032,7 @@ static void pool_hotbox_v2_push_partial(pool_class_v2* hc, pool_page_v2* p) { if (hc->partial_count < UINT16_MAX) hc->partial_count++; } -static pool_page_v2* pool_hotbox_v2_pop_partial(pool_class_v2* hc) { +static __attribute__((unused)) pool_page_v2* pool_hotbox_v2_pop_partial(pool_class_v2* hc) { if (!hc || !hc->partial) return NULL; pool_page_v2* p = hc->partial; hc->partial = p->next;