[PATCH v3] winemac: Handle dummy_surface in get_mac_surface.
Ken Thomases
ken at codeweavers.com
Wed Mar 11 14:45:54 CDT 2020
From: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Ken Thomases <ken at codeweavers.com>
---
Supersedes 180680
v3: Check for non-Mac-driver surface in surface_clip_to_visible_rect(), too.
dlls/winemac.drv/surface.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/winemac.drv/surface.c b/dlls/winemac.drv/surface.c
index 9850c92aaa1..85ff56c9578 100644
--- a/dlls/winemac.drv/surface.c
+++ b/dlls/winemac.drv/surface.c
@@ -70,10 +70,7 @@ struct macdrv_window_surface
BITMAPINFO info; /* variable size, must be last */
};
-static struct macdrv_window_surface *get_mac_surface(struct window_surface *surface)
-{
- return (struct macdrv_window_surface *)surface;
-}
+static struct macdrv_window_surface *get_mac_surface(struct window_surface *surface);
/***********************************************************************
* update_blit_data
@@ -227,6 +224,12 @@ static const struct window_surface_funcs macdrv_surface_funcs =
macdrv_surface_destroy,
};
+static struct macdrv_window_surface *get_mac_surface(struct window_surface *surface)
+{
+ if (!surface || surface->funcs != &macdrv_surface_funcs) return NULL;
+ return (struct macdrv_window_surface *)surface;
+}
+
/***********************************************************************
* create_surface
*/
@@ -311,7 +314,7 @@ failed:
void set_surface_use_alpha(struct window_surface *window_surface, BOOL use_alpha)
{
struct macdrv_window_surface *surface = get_mac_surface(window_surface);
- surface->use_alpha = use_alpha;
+ if (surface) surface->use_alpha = use_alpha;
}
/***********************************************************************
@@ -424,6 +427,7 @@ void surface_clip_to_visible_rect(struct window_surface *window_surface, const R
{
struct macdrv_window_surface *surface = get_mac_surface(window_surface);
+ if (!surface) return;
window_surface->funcs->lock(window_surface);
if (surface->drawn)
--
2.21.0
More information about the wine-devel
mailing list