Mesa (main): zink/ntv: Don't call free() on ralloc'd memory

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 11 16:56:43 UTC 2021


Module: Mesa
Branch: main
Commit: 584145ea882b710027ce620a5d505bd25ab284b1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=584145ea882b710027ce620a5d505bd25ab284b1

Author: Adam Jackson <ajax at redhat.com>
Date:   Tue May 11 11:07:20 2021 -0400

zink/ntv: Don't call free() on ralloc'd memory

Caught this with an LTO build:

[1465/1465] Linking target src/gallium/targets/dri/libgallium_dri.so
In function ‘spirv_shader_delete’,
    inlined from ‘nir_to_spirv’ at ../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c:3907:7:
../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c:3916:4: warning: ‘free’ called on pointer ‘block_1394’ with nonzero offset 48 [-Wfree-nonheap-object]
 3916 |    FREE(s);
      |    ^
../src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c: In function ‘nir_to_spirv’:
../src/util/ralloc.c:133:18: note: returned from ‘malloc’
  133 |    void *block = malloc(align64(size + sizeof(ralloc_header),
      |                  ^

Since s->words is allocated on the same ralloc context we can simplify
further by freeing the context all at once.

Reviewed-by: Emma Anholt <emma at anholt.net>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10754>

---

 src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c
index 2701791214f..b180b259d3c 100644
--- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c
+++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c
@@ -3912,6 +3912,5 @@ fail:
 void
 spirv_shader_delete(struct spirv_shader *s)
 {
-   FREE(s->words);
-   FREE(s);
+   ralloc_free(s);
 }



More information about the mesa-commit mailing list