Henri Verbeet : d3d10: Check if the type was initialised in d3d10_effect_variable_destroy() (AFL ).
Alexandre Julliard
julliard at winehq.org
Fri May 27 09:42:32 CDT 2016
Module: wine
Branch: master
Commit: 908a8e677cbc3381206f61cccda01c663ed963ef
URL: http://source.winehq.org/git/wine.git/?a=commit;h=908a8e677cbc3381206f61cccda01c663ed963ef
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Thu May 26 19:36:52 2016 +0200
d3d10: Check if the type was initialised in d3d10_effect_variable_destroy() (AFL).
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/d3d10/effect.c | 51 +++++++++++++++++++++++++++------------------------
1 file changed, 27 insertions(+), 24 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c
index 6955445..a684ee5 100644
--- a/dlls/d3d10/effect.c
+++ b/dlls/d3d10/effect.c
@@ -2373,36 +2373,39 @@ static void d3d10_effect_variable_destroy(struct d3d10_effect_variable *v)
HeapFree(GetProcessHeap(), 0, v->elements);
}
- switch(v->type->basetype)
+ if (v->type)
{
- case D3D10_SVT_VERTEXSHADER:
- case D3D10_SVT_PIXELSHADER:
- case D3D10_SVT_GEOMETRYSHADER:
- d3d10_effect_shader_variable_destroy(&v->u.shader, v->type->basetype);
- break;
+ switch (v->type->basetype)
+ {
+ case D3D10_SVT_VERTEXSHADER:
+ case D3D10_SVT_PIXELSHADER:
+ case D3D10_SVT_GEOMETRYSHADER:
+ d3d10_effect_shader_variable_destroy(&v->u.shader, v->type->basetype);
+ break;
- case D3D10_SVT_DEPTHSTENCIL:
- if (v->u.state.object.depth_stencil)
- ID3D10DepthStencilState_Release(v->u.state.object.depth_stencil);
- break;
+ case D3D10_SVT_DEPTHSTENCIL:
+ if (v->u.state.object.depth_stencil)
+ ID3D10DepthStencilState_Release(v->u.state.object.depth_stencil);
+ break;
- case D3D10_SVT_BLEND:
- if (v->u.state.object.blend)
- ID3D10BlendState_Release(v->u.state.object.blend);
- break;
+ case D3D10_SVT_BLEND:
+ if (v->u.state.object.blend)
+ ID3D10BlendState_Release(v->u.state.object.blend);
+ break;
- case D3D10_SVT_RASTERIZER:
- if (v->u.state.object.rasterizer)
- ID3D10RasterizerState_Release(v->u.state.object.rasterizer);
- break;
+ case D3D10_SVT_RASTERIZER:
+ if (v->u.state.object.rasterizer)
+ ID3D10RasterizerState_Release(v->u.state.object.rasterizer);
+ break;
- case D3D10_SVT_SAMPLER:
- if (v->u.state.object.sampler)
- ID3D10SamplerState_Release(v->u.state.object.sampler);
- break;
+ case D3D10_SVT_SAMPLER:
+ if (v->u.state.object.sampler)
+ ID3D10SamplerState_Release(v->u.state.object.sampler);
+ break;
- default:
- break;
+ default:
+ break;
+ }
}
}
More information about the wine-cvs
mailing list