From 7cf7cee5a6670209180acd874e84b041da682162 Mon Sep 17 00:00:00 2001 From: TCMalloc Team Date: Wed, 2 Sep 2026 20:24:16 -0700 Subject: [PATCH] Internal change PiperOrigin-RevId: 975473070 --- tcmalloc/internal/numa.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tcmalloc/internal/numa.h b/tcmalloc/internal/numa.h index db1d7af07..392663119 100644 --- a/tcmalloc/internal/numa.h +++ b/tcmalloc/internal/numa.h @@ -236,7 +236,9 @@ inline size_t NumaTopology::GetCurrentPartition() const { if constexpr (NumPartitions == 1) return 0; const int cpu = subtle::percpu::GetRealCpuUnsafe(); - return gated_cpu_to_scaled_partition_[cpu + kNumaCpuFudge] / ScaleBy; + size_t idx = static_cast(cpu + kNumaCpuFudge); + if (ABSL_PREDICT_FALSE(idx >= kCpuMapSize)) return 0; + return gated_cpu_to_scaled_partition_[idx] / ScaleBy; } template @@ -244,7 +246,9 @@ inline size_t NumaTopology::GetCurrentScaledPartition() const { if constexpr (NumPartitions == 1) return 0; const int cpu = subtle::percpu::GetRealCpuUnsafe(); - return gated_cpu_to_scaled_partition_[cpu + kNumaCpuFudge]; + size_t idx = static_cast(cpu + kNumaCpuFudge); + if (ABSL_PREDICT_FALSE(idx >= kCpuMapSize)) return 0; + return gated_cpu_to_scaled_partition_[idx]; } template @@ -256,7 +260,9 @@ inline size_t NumaTopology::GetCpuPartition( template inline size_t NumaTopology::GetCpuScaledPartition( const int cpu) const { - return cpu_to_scaled_partition_[cpu + kNumaCpuFudge]; + size_t idx = static_cast(cpu + kNumaCpuFudge); + if (ABSL_PREDICT_FALSE(idx >= kCpuMapSize)) return 0; + return cpu_to_scaled_partition_[idx]; } template