Ticket #485: orpostlist_check.patch

File orpostlist_check.patch, 876 bytes (added by Richard Boulton, 14 years ago)

Possible fix, not including tests

  • matcher/orpostlist.cc

     
    221221    bool ldry = false;
    222222    bool lvalid = false;
    223223    bool rvalid = false;
    224     if (lhead < did) {
     224    if (lhead <= did) {
    225225        check_handling_prune(l, did, w_min - rmax, matcher, lvalid);
    226226        ldry = l->at_end();
    227227    }
    228228
    229     if (rhead < did) {
     229    if (rhead <= did) {
    230230        check_handling_prune(r, did, w_min - lmax, matcher, rvalid);
    231231
    232232        if (r->at_end()) {
     
    236236            RETURN(ret);
    237237        }
    238238        rhead = r->get_docid();
     239        if (!rvalid && rhead <= did) {
     240            rhead = did + 1;
     241        }
    239242    }
    240243
    241244    if (!ldry) {
    242245        lhead = l->get_docid();
     246        if (!lvalid && lhead <= did) {
     247            lhead = did + 1;
     248        }
    243249        if (lhead < rhead) {
    244250            valid = lvalid;
    245251        } else if (rhead < lhead) {