Zebediah Figura : tests: Store resources in a fixed-size array.

Alexandre Julliard julliard at winehq.org
Tue Apr 12 15:33:41 CDT 2022


Module: vkd3d
Branch: master
Commit: e208d87847e1d3e426a1a69755e8e0c6aaccc3c8
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=e208d87847e1d3e426a1a69755e8e0c6aaccc3c8

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Mon Apr 11 12:18:29 2022 -0500

tests: Store resources in a fixed-size array.

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>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 0aca7830..2bdc6bd1 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 8dc77673..3bfbf48d 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;




More information about the wine-cvs mailing list