Phase REFACTOR-1: Magic Number → Named Constants (TINY_CLASS_C6/C7)

Replace hardcoded class_idx checks (== 6, == 7) with named macros:
- tiny_class_is_c6(idx) for C6 checks
- tiny_class_is_c7(idx) for C7 checks
- tiny_class_is_ultra(idx) for combined checks

Benefits:
- Self-documenting code (semantic intent is clear)
- Single source of truth for class constants
- Easier to extend to other ULTRA tiers (C5, C8) in future

Changes:
- NEW: core/box/tiny_ultra_classes_box.h (named constants + helpers)
- Modified: core/front/malloc_tiny_fast.h (4 replacements: L181, L193, L326, L337)

No performance impact (zero-cost macros, same compiled code).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Moe Charm (CI)
2025-12-11 19:00:45 +09:00
parent 6eb78fa26c
commit 3cf88dab84
2 changed files with 18 additions and 4 deletions

View File

@ -0,0 +1,13 @@
#ifndef HAKMEM_TINY_ULTRA_CLASSES_BOX_H
#define HAKMEM_TINY_ULTRA_CLASSES_BOX_H
// Purpose: Named constants for ULTRA tier classes (C6, C7)
#define TINY_CLASS_C6 6
#define TINY_CLASS_C7 7
// Helper macros for class checking
#define tiny_class_is_c6(idx) ((idx) == TINY_CLASS_C6)
#define tiny_class_is_c7(idx) ((idx) == TINY_CLASS_C7)
#define tiny_class_is_ultra(idx) (tiny_class_is_c6(idx) || tiny_class_is_c7(idx))
#endif // HAKMEM_TINY_ULTRA_CLASSES_BOX_H

View File

@ -47,6 +47,7 @@
// #include "../box/smallobject_core_v6_box.h" // SmallObject Core v6 (C6-only route stub, Phase v6-1)
#include "../box/tiny_c7_ultra_box.h" // C7 ULTRA stub (UF-1, delegates to v3)
#include "../box/tiny_c6_ultra_free_box.h" // Phase 4-2: C6 ULTRA-free (free-only, C6-only)
#include "../box/tiny_ultra_classes_box.h" // Phase REFACTOR-1: Named constants for C6/C7
#include "../box/tiny_front_v3_env_box.h" // Tiny front v3 snapshot gate
#include "../box/tiny_heap_env_box.h" // ENV gate for TinyHeap front (A/B)
#include "../box/tiny_route_env_box.h" // Route snapshot (Heap vs Legacy)
@ -177,7 +178,7 @@ static inline void* malloc_tiny_fast(size_t size) {
tiny_front_alloc_stat_inc(class_idx);
// C7 ULTRA stub (UF-1): delegates to v3, ENV gated
if (class_idx == 7 &&
if (tiny_class_is_c7(class_idx) &&
tiny_front_v3_enabled() &&
tiny_front_v3_c7_ultra_enabled() &&
small_heap_v3_c7_enabled()) {
@ -189,7 +190,7 @@ static inline void* malloc_tiny_fast(size_t size) {
}
// Phase 4-4: C6 ULTRA free+alloc integration (寄生型 TLS キャッシュ pop)
if (class_idx == 6 && tiny_c6_ultra_free_enabled()) {
if (tiny_class_is_c6(class_idx) && tiny_c6_ultra_free_enabled()) {
TinyC6UltraFreeTLS* ctx = tiny_c6_ultra_free_tls();
if (TINY_HOT_LIKELY(ctx->count > 0)) {
void* base = ctx->freelist[--ctx->count];
@ -322,7 +323,7 @@ static inline int free_tiny_fast(void* ptr) {
FREE_PATH_STAT_INC(total_calls);
// C7 ULTRA stub (UF-1): delegates to v3, ENV gated
if (class_idx == 7 &&
if (tiny_class_is_c7(class_idx) &&
tiny_front_v3_enabled() &&
tiny_front_v3_c7_ultra_enabled() &&
small_heap_v3_c7_enabled()) {
@ -333,7 +334,7 @@ static inline int free_tiny_fast(void* ptr) {
}
// Phase 4-2: C6 ULTRA-free (C6-only, free-only, ENV gated)
if (class_idx == 6 && tiny_c6_ultra_free_enabled()) {
if (tiny_class_is_c6(class_idx) && tiny_c6_ultra_free_enabled()) {
tiny_c6_ultra_free_fast(base, class_idx);
return 1;
}