[PATCH vkd3d 2/4] tests: Store resources in a fixed-size array.

Zebediah Figura zfigura at codeweavers.com
Mon Apr 11 12:18:29 CDT 2022


We will need to allocate some structures in the Vulkan backend; this is easier
if we don't need to worry about allocating them dynamically.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 tests/shader_runner.c | 5 +++--
 tests/shader_runner.h | 4 +++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/tests/shader_runner.c b/tests/shader_runner.c
index 0aca7830e..2bdc6bd15 100644
--- a/tests/shader_runner.c
+++ b/tests/shader_runner.c
@@ -327,7 +327,9 @@ static void set_resource(struct shader_runner *runner, struct resource *resource
         }
     }
 
-    runner->resources = realloc(runner->resources, (runner->resource_count + 1) * sizeof(*runner->resources));
+    if (runner->resource_count == MAX_RESOURCES)
+        fatal_error("Too many resources declared.\n");
+
     runner->resources[runner->resource_count++] = resource;
 }
 
@@ -846,7 +848,6 @@ out:
         if (runner->resources[i])
             runner->ops->destroy_resource(runner, runner->resources[i]);
     }
-    free(runner->resources);
 
     fclose(f);
 
diff --git a/tests/shader_runner.h b/tests/shader_runner.h
index 8dc77673b..3bfbf48df 100644
--- a/tests/shader_runner.h
+++ b/tests/shader_runner.h
@@ -87,6 +87,8 @@ struct input_element
     unsigned int index;
 };
 
+#define MAX_RESOURCES 32
+
 struct shader_runner
 {
     const struct shader_runner_ops *ops;
@@ -98,7 +100,7 @@ struct shader_runner
     uint32_t *uniforms;
     size_t uniform_count, uniform_capacity;
 
-    struct resource **resources;
+    struct resource *resources[MAX_RESOURCES];
     size_t resource_count;
 
     struct sampler *samplers;
-- 
2.35.1




More information about the wine-devel mailing list