wined3d: Free the float constant map arrays for all stateblocks.
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 6242697..ea77ecd 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -254,14 +254,7 @@
if (NULL != This->vertexDecl) {
IWineD3DVertexDeclaration_Release(This->vertexDecl);
}
-
- HeapFree(GetProcessHeap(), 0, This->vertexShaderConstantF);
- HeapFree(GetProcessHeap(), 0, This->set.vertexShaderConstantsF);
- HeapFree(GetProcessHeap(), 0, This->changed.vertexShaderConstantsF);
- HeapFree(GetProcessHeap(), 0, This->pixelShaderConstantF);
- HeapFree(GetProcessHeap(), 0, This->set.pixelShaderConstantsF);
- HeapFree(GetProcessHeap(), 0, This->changed.pixelShaderConstantsF);
-
+
/* NOTE: according to MSDN: The application is responsible for making sure the texture references are cleared down */
for (counter = 0; counter < GL_LIMITS(sampler_stages); counter++) {
if (This->textures[counter]) {
@@ -273,6 +266,14 @@
}
}
+
+ HeapFree(GetProcessHeap(), 0, This->vertexShaderConstantF);
+ HeapFree(GetProcessHeap(), 0, This->set.vertexShaderConstantsF);
+ HeapFree(GetProcessHeap(), 0, This->changed.vertexShaderConstantsF);
+ HeapFree(GetProcessHeap(), 0, This->pixelShaderConstantF);
+ HeapFree(GetProcessHeap(), 0, This->set.pixelShaderConstantsF);
+ HeapFree(GetProcessHeap(), 0, This->changed.pixelShaderConstantsF);
+
HeapFree(GetProcessHeap(), 0, This);
}
return refCount;