[PATCH 2/9] d3dx9: Avoid double freeing samplers.
Matteo Bruni
mbruni at codeweavers.com
Mon Nov 18 09:59:41 CST 2019
From: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Paul Gofman <gofmanp at gmail.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
dlls/d3dx9_36/effect.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index ad81cb68cb2..eefd14aafa4 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -516,8 +516,7 @@ static void free_sampler(struct d3dx_sampler *sampler)
{
free_state(&sampler->states[i]);
}
- HeapFree(GetProcessHeap(), 0, sampler->states);
- HeapFree(GetProcessHeap(), 0, sampler);
+ heap_free(sampler->states);
}
static void d3dx_pool_release_shared_parameter(struct d3dx_top_level_parameter *param);
@@ -531,7 +530,7 @@ static void free_parameter_data(struct d3dx_parameter *param, BOOL child)
switch (param->type)
{
case D3DXPT_STRING:
- HeapFree(GetProcessHeap(), 0, *(char **)param->data);
+ heap_free(*(char **)param->data);
break;
case D3DXPT_TEXTURE:
@@ -557,8 +556,8 @@ static void free_parameter_data(struct d3dx_parameter *param, BOOL child)
break;
}
}
- if (!child)
- HeapFree(GetProcessHeap(), 0, param->data);
+ if (!child || is_param_type_sampler(param->type))
+ heap_free(param->data);
}
static void free_parameter(struct d3dx_parameter *param, BOOL element, BOOL child)
--
2.21.0
More information about the wine-devel
mailing list