We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent b96435b commit f308643Copy full SHA for f308643
1 file changed
src/query/union/buffered_union.rs
@@ -144,19 +144,18 @@ where
144
TScorer: Scorer,
145
TScoreCombiner: ScoreCombiner,
146
{
147
- #[inline]
148
fn advance(&mut self) -> DocId {
149
- if self.advance_buffered() {
150
- return self.doc;
151
- }
152
- if !self.refill() {
153
- self.doc = TERMINATED;
154
- return TERMINATED;
155
156
- if !self.advance_buffered() {
157
+ // A loop rather than two sequential advance_buffered calls
+ // produces a single inlined copy
+ loop {
+ if self.advance_buffered() {
+ return self.doc;
+ }
+ if !self.refill() {
+ self.doc = TERMINATED;
+ return TERMINATED;
158
}
159
- self.doc
160
161
162
fn fill_buffer(&mut self, buffer: &mut [DocId; COLLECT_BLOCK_BUFFER_LEN]) -> usize {
0 commit comments