This commit is contained in:
guofeng.my 2023-08-15 18:08:44 +08:00
parent 13e747f95f
commit 0968904e6a
1 changed files with 7 additions and 7 deletions

View File

@ -158,7 +158,7 @@ final class SegmentTermsEnum extends BaseTermsEnum {
break allTerms; break allTerms;
} }
final long lastFP = currentFrame.fpOrig; final long lastFP = currentFrame.fpOrig;
currentFrame = stack[currentFrame.ord - 1]; currentFrame = getFrame(currentFrame.ord - 1);
assert lastFP == currentFrame.lastSubFP; assert lastFP == currentFrame.lastSubFP;
// if (DEBUG) { // if (DEBUG) {
// System.out.println(" reset validIndexPrefix=" + validIndexPrefix); // System.out.println(" reset validIndexPrefix=" + validIndexPrefix);
@ -209,11 +209,11 @@ final class SegmentTermsEnum extends BaseTermsEnum {
new SegmentTermsEnumFrame new SegmentTermsEnumFrame
[ArrayUtil.oversize(1 + ord, RamUsageEstimator.NUM_BYTES_OBJECT_REF)]; [ArrayUtil.oversize(1 + ord, RamUsageEstimator.NUM_BYTES_OBJECT_REF)];
System.arraycopy(stack, 0, next, 0, stack.length); System.arraycopy(stack, 0, next, 0, stack.length);
for (int stackOrd = stack.length; stackOrd < next.length; stackOrd++) {
next[stackOrd] = new SegmentTermsEnumFrame(this, stackOrd);
}
stack = next; stack = next;
} }
if (stack[ord] == null) {
stack[ord] = new SegmentTermsEnumFrame(this, ord);
}
assert stack[ord].ord == ord; assert stack[ord].ord == ord;
return stack[ord]; return stack[ord];
} }
@ -398,7 +398,7 @@ final class SegmentTermsEnum extends BaseTermsEnum {
output = Lucene90BlockTreeTermsReader.FST_OUTPUTS.add(output, arc.output()); output = Lucene90BlockTreeTermsReader.FST_OUTPUTS.add(output, arc.output());
} }
if (arc.isFinal()) { if (arc.isFinal()) {
lastFrame = stack[1 + lastFrame.ord]; lastFrame = getFrame(1 + lastFrame.ord);
} }
targetUpto++; targetUpto++;
} }
@ -689,7 +689,7 @@ final class SegmentTermsEnum extends BaseTermsEnum {
output = Lucene90BlockTreeTermsReader.FST_OUTPUTS.add(output, arc.output()); output = Lucene90BlockTreeTermsReader.FST_OUTPUTS.add(output, arc.output());
} }
if (arc.isFinal()) { if (arc.isFinal()) {
lastFrame = stack[1 + lastFrame.ord]; lastFrame = getFrame(1 + lastFrame.ord);
} }
targetUpto++; targetUpto++;
} }
@ -1066,7 +1066,7 @@ final class SegmentTermsEnum extends BaseTermsEnum {
return null; return null;
} }
final long lastFP = currentFrame.fpOrig; final long lastFP = currentFrame.fpOrig;
currentFrame = stack[currentFrame.ord - 1]; currentFrame = getFrame(currentFrame.ord - 1);
if (currentFrame.nextEnt == -1 || currentFrame.lastSubFP != lastFP) { if (currentFrame.nextEnt == -1 || currentFrame.lastSubFP != lastFP) {
// We popped into a frame that's not loaded // We popped into a frame that's not loaded