Henri Verbeet : wined3d: Handle client storage in surface_remove_pbo().

Alexandre Julliard julliard at winehq.org
Wed Dec 21 12:38:07 CST 2011


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Dec 20 21:42:12 2011 +0100

wined3d: Handle client storage in surface_remove_pbo().

---

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

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 48d271f..b658832 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1766,9 +1766,14 @@ static void surface_remove_pbo(struct wined3d_surface *surface, const struct win
     {
         surface->resource.allocatedMemory = surface->dib.bitmap_data;
     }
-    else if (!surface->resource.heapMemory)
+    else
     {
-        surface->resource.heapMemory = HeapAlloc(GetProcessHeap(), 0, surface->resource.size + RESOURCE_ALIGNMENT);
+        if (!surface->resource.heapMemory)
+            surface->resource.heapMemory = HeapAlloc(GetProcessHeap(), 0, surface->resource.size + RESOURCE_ALIGNMENT);
+        else if (!(surface->flags & SFLAG_CLIENT))
+            ERR("Surface %p has heapMemory %p and flags %#x.\n",
+                    surface, surface->resource.heapMemory, surface->flags);
+
         surface->resource.allocatedMemory = (BYTE *)(((ULONG_PTR)surface->resource.heapMemory
                 + (RESOURCE_ALIGNMENT - 1)) & ~(RESOURCE_ALIGNMENT - 1));
     }




More information about the wine-cvs mailing list