From 2a80595ba58c7d1a063973847dc5f2822dc3c406 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 11 Dec 2020 16:59:00 -0500 Subject: [PATCH] mesa: skip memmove in optimize_state_parameters if it's no-op This doesn't change the behavior. Check if there is at least 1 element that follows removed parameters. Reviewed-by: Eric Anholt Part-of: --- src/mesa/program/prog_statevars.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/mesa/program/prog_statevars.c b/src/mesa/program/prog_statevars.c index 81a821d..70c1aab 100644 --- a/src/mesa/program/prog_statevars.c +++ b/src/mesa/program/prog_statevars.c @@ -1349,10 +1349,12 @@ _mesa_optimize_state_parameters(struct gl_constants *consts, free((char*)list->Parameters[i].Name); /* Remove the merged state vars. */ - memmove(&list->Parameters[first_param + 1], - &list->Parameters[last_param + 1], - sizeof(list->Parameters[0]) * - (list->NumParameters - last_param - 1)); + if (last_param + 1 < list->NumParameters) { + memmove(&list->Parameters[first_param + 1], + &list->Parameters[last_param + 1], + sizeof(list->Parameters[0]) * + (list->NumParameters - last_param - 1)); + } list->NumParameters -= param_diff; } } -- 2.7.4