Commit 972dc565 authored by Matteo Bruni's avatar Matteo Bruni Committed by Alexandre Julliard

d3dx9: Skip AddRef + Release if SetValue is called with the old texture.

parent 32ffef33
......@@ -1555,13 +1555,16 @@ static HRESULT d3dx9_base_effect_set_value(struct d3dx9_base_effect *base,
case D3DXPT_TEXTURECUBE:
for (i = 0; i < (param->element_count ? param->element_count : 1); ++i)
{
IUnknown *unk = ((IUnknown **)data)[i];
if (unk)
IUnknown_AddRef(unk);
IUnknown *old_texture = ((IUnknown **)param->data)[i];
IUnknown *new_texture = ((IUnknown **)data)[i];
unk = ((IUnknown **)param->data)[i];
if (unk)
IUnknown_Release(unk);
if (new_texture == old_texture)
continue;
if (new_texture)
IUnknown_AddRef(new_texture);
if (old_texture)
IUnknown_Release(old_texture);
}
/* fallthrough */
case D3DXPT_VOID:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment