From e3b662bb20ff2118943f0bbdc627b70f16a4f991 Mon Sep 17 00:00:00 2001 From: Roderick Colenbrander Date: Sat, 3 May 2008 20:15:58 +0000 Subject: [PATCH] wined3d: At the start of RemoveContextFromArray numContexts is decreased by 1, the loop which loops through the whole array doesn't take this into account. Discovered by Peter Oberndorfer. --- dlls/wined3d/context.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index e5b82e57f47..33415551aac 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -546,7 +546,8 @@ static void RemoveContextFromArray(IWineD3DDeviceImpl *This, WineD3DContext *con ERR("Cannot allocate a new context array, PANIC!!!\n"); } t = 0; - for(s = 0; s < This->numContexts; s++) { + /* Note that we decreased numContexts a few lines up, so use '<=' instead of '<' */ + for(s = 0; s <= This->numContexts; s++) { if(oldArray[s] == context) continue; This->contexts[t] = oldArray[s]; t++;