Henri Verbeet : ddraw: Just return an error if we failed to find the predecessor in ddraw_surface_delete_attached_surface ().
Module: wine Branch: master Commit: 644724d32cf832db895c4ed58a1e0ac31363077c URL: http://source.winehq.org/git/wine.git/?a=commit;h=644724d32cf832db895c4ed58a... Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Mar 15 16:55:11 2016 +0100 ddraw: Just return an error if we failed to find the predecessor in ddraw_surface_delete_attached_surface(). Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ddraw/surface.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 9e28655..3709b94 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -1982,16 +1982,16 @@ static HRESULT ddraw_surface_delete_attached_surface(struct ddraw_surface *surfa } /* Find the predecessor of the detached surface */ - while (prev) + while (prev->next_attached != attachment) { - if (prev->next_attached == attachment) - break; - prev = prev->next_attached; + if (!(prev = prev->next_attached)) + { + ERR("Failed to find predecessor of %p.\n", attachment); + wined3d_mutex_unlock(); + return DDERR_SURFACENOTATTACHED; + } } - /* There must be a surface, otherwise there's a bug */ - assert(prev); - /* Unchain the surface */ prev->next_attached = attachment->next_attached; attachment->next_attached = NULL;
participants (1)
-
Alexandre Julliard