From 8a4e44760e77155b38da65dfd2a32209fec0ddf5 Mon Sep 17 00:00:00 2001 From: adman Date: Mon, 27 Apr 2026 01:45:41 +0200 Subject: [PATCH] fix: TestRealStorageResizeDirect and TestRealStorageDirectModeNoPalette bugs - resize() was writing to wrong array (r.data instead of newData) and using wrong elementsPerLong during resize loop - TestRealStorageDirectModeNoPalette had invalid test data (0x1FFFF needs bpe>=17 but test used bpe=9) --- level/rrrr.go | 4 ++-- level/rrrr_test.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/level/rrrr.go b/level/rrrr.go index 30a3484..eec002c 100644 --- a/level/rrrr.go +++ b/level/rrrr.go @@ -98,11 +98,11 @@ func (r *RealStorage) resize(bpe uint8) { for i := range r.format.Len { var v int32 if resizeDirect { - v = int32((r.data[i/r.elementsPerLong] >> ((i % r.elementsPerLong) * int32(r.bpe))) & r.mask) + v, _ = r.Get(i) } else { v = int32((r.data[i/r.elementsPerLong] >> ((i % r.elementsPerLong) * int32(r.bpe))) & r.mask) } - r.data[i/r.elementsPerLong] |= uint64(v) << ((i % r.elementsPerLong) * int32(bpe)) + newData[i/int32(numberOfElements)] |= uint64(v) << ((i % int32(numberOfElements)) * int32(bpe)) } if resizeDirect { r.palette = nil diff --git a/level/rrrr_test.go b/level/rrrr_test.go index a5edd1c..c69cda2 100644 --- a/level/rrrr_test.go +++ b/level/rrrr_test.go @@ -292,7 +292,7 @@ func TestRealStorageDirectModeNoPalette(t *testing.T) { } data := make([]uint64, 36) - data[0] = 0x1FFFF + data[0] = 0x1FF s, err := format.ImportDataDirect(data) if err != nil { @@ -303,8 +303,8 @@ func TestRealStorageDirectModeNoPalette(t *testing.T) { if err != nil { t.Fatalf("Get(0) failed: %v", err) } - if got != 0x1FFFF { - t.Errorf("Get(0) = %d, want %d", got, 0x1FFFF) + if got != 0x1FF { + t.Errorf("Get(0) = %d, want %d", got, 0x1FF) } }