backend/drm: consider continue not using resources

Fixes #1230
This commit is contained in:
emersion 2018-09-04 22:57:09 +02:00
parent fb94f03b43
commit 5b13b8a12c

View file

@ -247,13 +247,19 @@ static bool match_obj_(struct match_state *st, size_t skips, size_t score, size_
* Attempt to use the current solution first, to try and avoid
* recalculating everything
*/
if (st->orig[i] != UNMATCHED && !is_taken(i, st->res, st->orig[i])) {
st->res[i] = st->orig[i];
if (match_obj_(st, skips, score + 1, replaced, i + 1)) {
return true;
}
}
if (st->orig[i] == UNMATCHED) {
st->res[i] = UNMATCHED;
match_obj_(st, skips, score, replaced, i + 1);
if (st->exit_early) {
return true;
}
}
if (st->orig[i] != UNMATCHED) {
++replaced;