[PATCH vkd3d 2/5] vkd3d-utils: Simplify handling of shader messages a bit.

Zebediah Figura zfigura at codeweavers.com
Sun Mar 6 20:04:35 CST 2022


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 libs/vkd3d-utils/vkd3d_utils_main.c | 36 +++++++++++++----------------
 1 file changed, 16 insertions(+), 20 deletions(-)

diff --git a/libs/vkd3d-utils/vkd3d_utils_main.c b/libs/vkd3d-utils/vkd3d_utils_main.c
index 9607eddd6..22953c461 100644
--- a/libs/vkd3d-utils/vkd3d_utils_main.c
+++ b/libs/vkd3d-utils/vkd3d_utils_main.c
@@ -263,20 +263,18 @@ HRESULT WINAPI D3DCompile2(const void *data, SIZE_T data_size, const char *filen
     }
 
     ret = vkd3d_shader_compile(&compile_info, &byte_code, &messages);
-    if (messages)
+
+    if (messages && messages_blob)
     {
-        if (messages_blob)
+        if (FAILED(hr = vkd3d_blob_create(messages, strlen(messages), messages_blob)))
         {
-            if (FAILED(hr = vkd3d_blob_create(messages, strlen(messages), messages_blob)))
-            {
-                vkd3d_shader_free_messages(messages);
-                vkd3d_shader_free_shader_code(&byte_code);
-                return hr;
-            }
-        }
-        else
             vkd3d_shader_free_messages(messages);
+            vkd3d_shader_free_shader_code(&byte_code);
+            return hr;
+        }
+        messages = NULL;
     }
+    vkd3d_shader_free_messages(messages);
 
     if (!ret)
     {
@@ -351,20 +349,18 @@ HRESULT WINAPI D3DPreprocess(const void *data, SIZE_T size, const char *filename
     preprocess_info.include_context = include;
 
     ret = vkd3d_shader_preprocess(&compile_info, &preprocessed_code, &messages);
-    if (messages)
+
+    if (messages && messages_blob)
     {
-        if (messages_blob)
+        if (FAILED(hr = vkd3d_blob_create(messages, strlen(messages), messages_blob)))
         {
-            if (FAILED(hr = vkd3d_blob_create(messages, strlen(messages), messages_blob)))
-            {
-                vkd3d_shader_free_messages(messages);
-                vkd3d_shader_free_shader_code(&preprocessed_code);
-                return hr;
-            }
-        }
-        else
             vkd3d_shader_free_messages(messages);
+            vkd3d_shader_free_shader_code(&preprocessed_code);
+            return hr;
+        }
+        messages = NULL;
     }
+    vkd3d_shader_free_messages(messages);
 
     if (!ret)
     {
-- 
2.35.1




More information about the wine-devel mailing list