Henri Verbeet : d3d10: Check if the type was initialised in d3d10_effect_variable_destroy() (AFL ).
Module: wine Branch: master Commit: 908a8e677cbc3381206f61cccda01c663ed963ef URL: http://source.winehq.org/git/wine.git/?a=commit;h=908a8e677cbc3381206f61cccd... Author: Henri Verbeet <hverbeet(a)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(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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; + } } }
participants (1)
-
Alexandre Julliard