Mesa (main): vbo/dlist: free copied.buffer if no vertices were copied
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Nov 4 13:31:16 UTC 2021
Module: Mesa
Branch: main
Commit: 9b09655a587f03b4096df0a4314e98a267816cfa
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b09655a587f03b4096df0a4314e98a267816cfa
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Mon Oct 4 11:18:47 2021 +0200
vbo/dlist: free copied.buffer if no vertices were copied
Other parts of the code asserts that copied.buffer is NULL if there are
no vertices to copy.
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13246>
---
src/mesa/vbo/vbo_save_api.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c
index 6bcd3e965f2..e71613c93cf 100644
--- a/src/mesa/vbo/vbo_save_api.c
+++ b/src/mesa/vbo/vbo_save_api.c
@@ -168,8 +168,13 @@ copy_vertices(struct gl_context *ctx,
assert(save->copied.buffer == NULL);
save->copied.buffer = malloc(sizeof(fi_type) * sz * prim->count);
- return vbo_copy_vertices(ctx, prim->mode, prim->start, &prim->count,
- prim->begin, sz, true, save->copied.buffer, src);
+ unsigned r = vbo_copy_vertices(ctx, prim->mode, prim->start, &prim->count,
+ prim->begin, sz, true, save->copied.buffer, src);
+ if (!r) {
+ free(save->copied.buffer);
+ save->copied.buffer = NULL;
+ }
+ return r;
}
More information about the mesa-commit
mailing list