wined3d: Avoid unnecessary memory allocations in nested command stream calls.

Sebastian Lackner sebastian at fds-team.de
Fri Feb 17 09:54:45 CST 2017


Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
---

Depends on http://source.winehq.org/patches/data/130379.
If preferred, the patch can also be merged into the original commit.

 dlls/wined3d/cs.c |   13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 10905c0515a..bbae5add951 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -1608,15 +1608,14 @@ static void wined3d_cs_st_submit(struct wined3d_cs *cs)
     data = cs->data;
     start = cs->start;
     cs->start = cs->end;
+
     opcode = *(const enum wined3d_cs_op *)&data[start];
     wined3d_cs_op_handlers[opcode](cs, &data[start]);
-    if (!start)
-    {
-        if (cs->data != data)
-            HeapFree(GetProcessHeap(), 0, data);
-        else
-            cs->start = cs->end = 0;
-    }
+
+    if (cs->data == data)
+        cs->start = cs->end = start;
+    else if (!start)
+        HeapFree(GetProcessHeap(), 0, data);
 }
 
 static void wined3d_cs_st_push_constants(struct wined3d_cs *cs, enum wined3d_push_constants p,
-- 
2.11.0



More information about the wine-patches mailing list