=?UTF-8?Q?Stefan=20D=C3=B6singer=20?=: d3dx9_36: Improve error handling in remap_faces_for_attrsort.

Alexandre Julliard julliard at winehq.org
Mon Jan 6 14:47:14 CST 2014


Module: wine
Branch: master
Commit: 86e88f51b88f99514d1a00f9ee60c0a60232c7b1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=86e88f51b88f99514d1a00f9ee60c0a60232c7b1

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Fri Jan  3 14:17:18 2014 +0100

d3dx9_36: Improve error handling in remap_faces_for_attrsort.

---

 dlls/d3dx9_36/mesh.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 133f14d..b713079 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -1615,12 +1615,17 @@ static HRESULT remap_faces_for_attrsort(struct d3dx9_mesh *This, const DWORD *in
     DWORD **sorted_attrib_ptr_buffer = NULL;
     DWORD i;
 
-    *face_remap = HeapAlloc(GetProcessHeap(), 0, This->numfaces * sizeof(**face_remap));
     sorted_attrib_ptr_buffer = HeapAlloc(GetProcessHeap(), 0, This->numfaces * sizeof(*sorted_attrib_ptr_buffer));
-    if (!*face_remap || !sorted_attrib_ptr_buffer) {
+    if (!sorted_attrib_ptr_buffer)
+        return E_OUTOFMEMORY;
+
+    *face_remap = HeapAlloc(GetProcessHeap(), 0, This->numfaces * sizeof(**face_remap));
+    if (!*face_remap)
+    {
         HeapFree(GetProcessHeap(), 0, sorted_attrib_ptr_buffer);
         return E_OUTOFMEMORY;
     }
+
     for (i = 0; i < This->numfaces; i++)
         sorted_attrib_ptr_buffer[i] = &attrib_buffer[i];
     qsort(sorted_attrib_ptr_buffer, This->numfaces, sizeof(*sorted_attrib_ptr_buffer),




More information about the wine-cvs mailing list