From 146fccc22df7b0997b1bcb83af961d72adf0c2fe Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Thu, 29 Feb 2024 17:36:28 +0200 Subject: [PATCH] app/vmselect/netstorage: usae unsafe.SliceData instead of deprecated reflect.SliceHeader --- app/vmselect/netstorage/netstorage.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/vmselect/netstorage/netstorage.go b/app/vmselect/netstorage/netstorage.go index 3d60b30a12..290fc506ea 100644 --- a/app/vmselect/netstorage/netstorage.go +++ b/app/vmselect/netstorage/netstorage.go @@ -5,7 +5,6 @@ import ( "errors" "flag" "fmt" - "reflect" "sort" "sync" "sync/atomic" @@ -1312,9 +1311,11 @@ func canAppendToBlockRefPool(pool, a []blockRef) bool { // a doesn't belong to pool return false } - shPool := (*reflect.SliceHeader)(unsafe.Pointer(&pool)) - shA := (*reflect.SliceHeader)(unsafe.Pointer(&a)) - return shPool.Data+uintptr(shPool.Len)*unsafe.Sizeof(blockRef{}) == shA.Data+uintptr(shA.Len)*unsafe.Sizeof(blockRef{}) + return getBlockRefsEnd(pool) == getBlockRefsEnd(a) +} + +func getBlockRefsEnd(a []blockRef) uintptr { + return uintptr(unsafe.Pointer(unsafe.SliceData(a))) + uintptr(len(a))*unsafe.Sizeof(blockRef{}) } func setupTfss(qt *querytracer.Tracer, tr storage.TimeRange, tagFilterss [][]storage.TagFilter, maxMetrics int, deadline searchutils.Deadline) ([]*storage.TagFilters, error) {