From 0d29e2a39d6796fd1d6167646619d7c34684801f Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Tue, 9 Jul 2024 01:39:40 +0200 Subject: [PATCH] (index-reverse) Entry Sources reset() their LongQueryBuffer Previously this was the responsibility of the caller, which lead to the possibility of passing in improperly prepared buffers and receiving bad outcome --- .../java/nu/marginalia/index/FullIndexEntrySource.java | 1 + .../java/nu/marginalia/index/PrioIndexEntrySource.java | 1 + code/index/query/java/nu/marginalia/index/query/IndexQuery.java | 2 -- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/index/index-reverse/java/nu/marginalia/index/FullIndexEntrySource.java b/code/index/index-reverse/java/nu/marginalia/index/FullIndexEntrySource.java index c76b9189..3f572f15 100644 --- a/code/index/index-reverse/java/nu/marginalia/index/FullIndexEntrySource.java +++ b/code/index/index-reverse/java/nu/marginalia/index/FullIndexEntrySource.java @@ -36,6 +36,7 @@ public class FullIndexEntrySource implements EntrySource { @Override public void read(LongQueryBuffer buffer) { + buffer.reset(); buffer.end = min(buffer.end, endOffset - pos); reader.readData(buffer.data, buffer.end, pos); pos += buffer.end; diff --git a/code/index/index-reverse/java/nu/marginalia/index/PrioIndexEntrySource.java b/code/index/index-reverse/java/nu/marginalia/index/PrioIndexEntrySource.java index 2d29b99b..bfb6be14 100644 --- a/code/index/index-reverse/java/nu/marginalia/index/PrioIndexEntrySource.java +++ b/code/index/index-reverse/java/nu/marginalia/index/PrioIndexEntrySource.java @@ -42,6 +42,7 @@ public class PrioIndexEntrySource implements EntrySource { @SneakyThrows @SuppressWarnings("preview") public void read(LongQueryBuffer buffer) { + buffer.reset(); buffer.end = min(buffer.end, endOffsetL - posL); var byteBuffer = buffer.data.getMemorySegment().asByteBuffer(); diff --git a/code/index/query/java/nu/marginalia/index/query/IndexQuery.java b/code/index/query/java/nu/marginalia/index/query/IndexQuery.java index 81136e91..52caed8e 100644 --- a/code/index/query/java/nu/marginalia/index/query/IndexQuery.java +++ b/code/index/query/java/nu/marginalia/index/query/IndexQuery.java @@ -73,8 +73,6 @@ public class IndexQuery { private boolean fillBuffer(LongQueryBuffer dest) { for (;;) { - dest.reset(); - EntrySource source = sources.get(si); source.read(dest);