diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c index 8bc9ba8f5ec..5ebc0c261da 100644 --- a/dlls/d3dx9_36/effect.c +++ b/dlls/d3dx9_36/effect.c @@ -530,6 +530,7 @@ static void free_sampler(struct d3dx_sampler *sampler) free_state(&sampler->states[i]); } HeapFree(GetProcessHeap(), 0, sampler->states); + HeapFree(GetProcessHeap(), 0, sampler); } static void d3dx_pool_release_shared_parameter(struct d3dx_top_level_parameter *param); @@ -562,7 +563,7 @@ static void free_parameter_data(struct d3dx_parameter *param, BOOL child) case D3DXPT_SAMPLER3D: case D3DXPT_SAMPLERCUBE: free_sampler((struct d3dx_sampler *)param->data); - break; + return; default: FIXME("Unhandled type %s\n", debug_d3dxparameter_type(param->type));