Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/user32/win.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dlls/user32/win.c b/dlls/user32/win.c index 7c2471d2746..ca758a535b1 100644 --- a/dlls/user32/win.c +++ b/dlls/user32/win.c @@ -614,10 +614,15 @@ static inline void reset_bounds( RECT *bounds ) static struct offscreen_window_surface *impl_from_window_surface( struct window_surface *base ) { - if (!base || base->funcs != &offscreen_window_surface_funcs) return NULL; return CONTAINING_RECORD( base, struct offscreen_window_surface, header ); } +static struct offscreen_window_surface *impl_from_window_surface_or_null( struct window_surface *base ) +{ + if (!base || base->funcs != &offscreen_window_surface_funcs) return NULL; + return impl_from_window_surface( base ); +} + static void CDECL offscreen_window_surface_lock( struct window_surface *base ) { struct offscreen_window_surface *impl = impl_from_window_surface( base ); @@ -687,7 +692,7 @@ void create_offscreen_window_surface( const RECT *visible_rect, struct window_su surface_rect.bottom = (surface_rect.bottom + 0x1f) & ~0x1f; /* check that old surface is an offscreen_window_surface, or release it */ - if ((impl = impl_from_window_surface( *surface ))) + if ((impl = impl_from_window_surface_or_null( *surface ))) { /* if the rect didn't change, keep the same surface */ if (EqualRect( &surface_rect, &impl->header.rect )) return; -- 2.33.0