radv: Don't leak the RT prolog binary
authorFriedrich Vock <friedrich.vock@gmx.de>
Mon, 17 Apr 2023 14:19:11 +0000 (16:19 +0200)
committerMarge Bot <emma+marge@anholt.net>
Tue, 25 Apr 2023 19:32:42 +0000 (19:32 +0000)
Fixes: 063d0c90 ("radv: Combine all the parts together with a main loop for an RT pipeline.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22535>

src/amd/vulkan/radv_shader.c

index a25a3a6..fe3ee0f 100644 (file)
@@ -2382,7 +2382,7 @@ radv_create_rt_prolog(struct radv_device *device)
    radv_postprocess_binary_config(device, binary, &in_args);
    prolog = radv_shader_create(device, binary);
    if (!prolog)
-      goto fail;
+      goto done;
 
    if (device->keep_shader_info || options.dump_shader) {
       radv_capture_shader_executable_info(device, prolog, NULL, 0, binary);
@@ -2393,11 +2393,9 @@ radv_create_rt_prolog(struct radv_device *device)
       fprintf(stderr, "\ndisasm:\n%s\n", prolog->disasm_string);
    }
 
-   return prolog;
-
-fail:
+done:
    free(binary);
-   return NULL;
+   return prolog;
 }
 
 struct radv_shader_part *