[PATCH 1/5] wined3d: Resource size should always be non-zero in resource_init().

Henri Verbeet hverbeet at codeweavers.com
Sun Mar 18 15:39:07 CDT 2018


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 dlls/wined3d/resource.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
index 97f7aec4e12..8968c164ed5 100644
--- a/dlls/wined3d/resource.c
+++ b/dlls/wined3d/resource.c
@@ -91,6 +91,9 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
         return WINED3DERR_INVALIDCALL;
     }
 
+    if (!size)
+        ERR("Attempting to create a zero-sized resource.\n");
+
     for (i = 0; i < ARRAY_SIZE(resource_types); ++i)
     {
         if (resource_types[i].type != type
@@ -188,17 +191,10 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
     resource->resource_ops = resource_ops;
     resource->map_binding = WINED3D_LOCATION_SYSMEM;
 
-    if (size)
-    {
-        if (!wined3d_resource_allocate_sysmem(resource))
-        {
-            ERR("Failed to allocate system memory.\n");
-            return E_OUTOFMEMORY;
-        }
-    }
-    else
+    if (!wined3d_resource_allocate_sysmem(resource))
     {
-        resource->heap_memory = NULL;
+        ERR("Failed to allocate system memory.\n");
+        return E_OUTOFMEMORY;
     }
 
     if (!(usage & WINED3DUSAGE_PRIVATE))
-- 
2.11.0




More information about the wine-devel mailing list