From 3cd86c9f62cfb800164068a2cb8a77b65ef6d9bc Mon Sep 17 00:00:00 2001 From: Joachim Priesner <joachim.priesner@web.de> Date: Thu, 8 May 2014 22:43:46 +0200 Subject: [PATCH] wined3d: Clear active lights when cleaning up a D3D stateblock. This prevents dangling pointers as the light structures that the pointers in the state->lights array point to are freed below when cleaning the light maps. --- dlls/wined3d/stateblock.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index f991362f46d..e98ee2a706b 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -539,6 +539,11 @@ void state_cleanup(struct wined3d_state *state) if (!(state->flags & WINED3D_STATE_NO_REF)) state_unbind_resources(state); + for (counter = 0; counter < MAX_ACTIVE_LIGHTS; ++counter) + { + state->lights[counter] = NULL; + } + for (counter = 0; counter < LIGHTMAP_SIZE; ++counter) { struct list *e1, *e2; -- 2.24.1