From 5b13b8a12c55b3216b1b92a20474efc856be5d7b Mon Sep 17 00:00:00 2001 From: emersion Date: Tue, 4 Sep 2018 22:57:09 +0200 Subject: [PATCH] backend/drm: consider continue not using resources Fixes #1230 --- backend/drm/util.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/drm/util.c b/backend/drm/util.c index 4681f85a..c97afac6 100644 --- a/backend/drm/util.c +++ b/backend/drm/util.c @@ -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;