d3dx9: Introduce free_constant_table().
This commit is contained in:
parent
14b790a548
commit
4a6e06d7bb
|
@ -632,6 +632,12 @@ typedef struct ID3DXConstantTableImpl {
|
||||||
ctab_constant *constants;
|
ctab_constant *constants;
|
||||||
} ID3DXConstantTableImpl;
|
} ID3DXConstantTableImpl;
|
||||||
|
|
||||||
|
static void free_constant_table(struct ID3DXConstantTableImpl *table)
|
||||||
|
{
|
||||||
|
HeapFree(GetProcessHeap(), 0, table->constants);
|
||||||
|
HeapFree(GetProcessHeap(), 0, table->ctab);
|
||||||
|
}
|
||||||
|
|
||||||
static inline ID3DXConstantTableImpl *impl_from_ID3DXConstantTable(ID3DXConstantTable *iface)
|
static inline ID3DXConstantTableImpl *impl_from_ID3DXConstantTable(ID3DXConstantTable *iface)
|
||||||
{
|
{
|
||||||
return CONTAINING_RECORD(iface, ID3DXConstantTableImpl, ID3DXConstantTable_iface);
|
return CONTAINING_RECORD(iface, ID3DXConstantTableImpl, ID3DXConstantTable_iface);
|
||||||
|
@ -681,7 +687,7 @@ static ULONG WINAPI ID3DXConstantTableImpl_AddRef(ID3DXConstantTable* iface)
|
||||||
return InterlockedIncrement(&This->ref);
|
return InterlockedIncrement(&This->ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI ID3DXConstantTableImpl_Release(ID3DXConstantTable* iface)
|
static ULONG WINAPI ID3DXConstantTableImpl_Release(ID3DXConstantTable *iface)
|
||||||
{
|
{
|
||||||
ID3DXConstantTableImpl *This = impl_from_ID3DXConstantTable(iface);
|
ID3DXConstantTableImpl *This = impl_from_ID3DXConstantTable(iface);
|
||||||
ULONG ref = InterlockedDecrement(&This->ref);
|
ULONG ref = InterlockedDecrement(&This->ref);
|
||||||
|
@ -690,8 +696,7 @@ static ULONG WINAPI ID3DXConstantTableImpl_Release(ID3DXConstantTable* iface)
|
||||||
|
|
||||||
if (!ref)
|
if (!ref)
|
||||||
{
|
{
|
||||||
HeapFree(GetProcessHeap(), 0, This->constants);
|
free_constant_table(This);
|
||||||
HeapFree(GetProcessHeap(), 0, This->ctab);
|
|
||||||
HeapFree(GetProcessHeap(), 0, This);
|
HeapFree(GetProcessHeap(), 0, This);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1258,8 +1263,7 @@ HRESULT WINAPI D3DXGetShaderConstantTableEx(CONST DWORD* byte_code,
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
|
||||||
HeapFree(GetProcessHeap(), 0, object->constants);
|
free_constant_table(object);
|
||||||
HeapFree(GetProcessHeap(), 0, object->ctab);
|
|
||||||
HeapFree(GetProcessHeap(), 0, object);
|
HeapFree(GetProcessHeap(), 0, object);
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
|
|
Loading…
Reference in New Issue