Commit 17da2665 authored by Alex Henrie's avatar Alex Henrie Committed by Alexandre Julliard

d3dx9: Use CRT allocation functions.

parent 3b3a65ad
......@@ -75,7 +75,7 @@ static ULONG WINAPI d3dx9_animation_controller_Release(ID3DXAnimationController
if (!refcount)
{
HeapFree(GetProcessHeap(), 0, animation);
free(animation);
}
return refcount;
......@@ -452,7 +452,7 @@ HRESULT WINAPI D3DXCreateAnimationController(UINT max_outputs, UINT max_sets,
if (!max_outputs || !max_sets || !max_tracks || !max_events || !controller)
return D3D_OK;
object = HeapAlloc(GetProcessHeap(), 0, sizeof(*object));
object = calloc(1, sizeof(*object));
if (!object)
return E_OUTOFMEMORY;
......@@ -524,8 +524,8 @@ static ULONG WINAPI d3dx9_keyframed_animation_Release(ID3DXKeyframedAnimationSet
if (!refcount)
{
heap_free((char *)set->name);
heap_free(set);
free((char *)set->name);
free(set);
}
return refcount;
......@@ -860,7 +860,6 @@ HRESULT WINAPI D3DXCreateKeyframedAnimationSet(const char *name, double ticks_pe
const D3DXKEY_CALLBACK *callback_keys, ID3DXKeyframedAnimationSet **animation_set)
{
struct d3dx9_keyframed_animation_set *object;
char *string;
TRACE("name %s, ticks_per_second %.16e, playback_type %u, animation_count %u, "
"callback_key_count %u, callback_keys %p, animation_set %p.\n",
......@@ -870,18 +869,16 @@ HRESULT WINAPI D3DXCreateKeyframedAnimationSet(const char *name, double ticks_pe
if (!animation_count)
return D3DERR_INVALIDCALL;
if (!(object = heap_alloc(sizeof(*object))))
if (!(object = calloc(1, sizeof(*object))))
return E_OUTOFMEMORY;
object->ID3DXKeyframedAnimationSet_iface.lpVtbl = &d3dx9_keyframed_animation_vtbl;
object->ref = 1;
if (!(string = heap_alloc(strlen(name) + 1)))
if (!(object->name = strdup(name)))
{
heap_free(object);
free(object);
return E_OUTOFMEMORY;
}
strcpy(string, name);
object->name = string;
object->ticks_per_second = ticks_per_second;
object->playback_type = playback_type;
object->animation_count = animation_count;
......
......@@ -72,8 +72,8 @@ static ULONG WINAPI ID3DXBufferImpl_Release(ID3DXBuffer *iface)
if (ref == 0)
{
HeapFree(GetProcessHeap(), 0, This->buffer);
HeapFree(GetProcessHeap(), 0, This);
free(This->buffer);
free(This);
}
return ref;
......@@ -114,7 +114,7 @@ static HRESULT d3dx9_buffer_init(struct ID3DXBufferImpl *buffer, DWORD size)
buffer->ref = 1;
buffer->size = size;
buffer->buffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
buffer->buffer = calloc(1, size);
if (!buffer->buffer)
{
ERR("Failed to allocate buffer memory\n");
......@@ -137,7 +137,7 @@ HRESULT WINAPI D3DXCreateBuffer(DWORD size, ID3DXBuffer **buffer)
return D3DERR_INVALIDCALL;
}
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
object = calloc(1, sizeof(*object));
if (!object)
return E_OUTOFMEMORY;
......@@ -145,7 +145,7 @@ HRESULT WINAPI D3DXCreateBuffer(DWORD size, ID3DXBuffer **buffer)
if (FAILED(hr))
{
WARN("Failed to initialize buffer, hr %#lx.\n", hr);
HeapFree(GetProcessHeap(), 0, object);
free(object);
return hr;
}
......
......@@ -24,7 +24,6 @@
#include <stdint.h>
#include "wine/debug.h"
#include "wine/heap.h"
#include "wine/rbtree.h"
#define COBJMACROS
......
......@@ -66,7 +66,7 @@ static void glyph_rb_free(struct wine_rb_entry *entry, void *context)
{
struct d3dx_glyph *glyph = WINE_RB_ENTRY_VALUE(entry, struct d3dx_glyph, entry);
heap_free(glyph);
free(glyph);
}
static inline struct d3dx_font *impl_from_ID3DXFont(ID3DXFont *iface)
......@@ -114,14 +114,14 @@ static ULONG WINAPI ID3DXFontImpl_Release(ID3DXFont *iface)
for (i = 0; i < font->texture_count; ++i)
IDirect3DTexture9_Release(font->textures[i]);
heap_free(font->textures);
free(font->textures);
wine_rb_destroy(&font->glyph_tree, glyph_rb_free, NULL);
DeleteObject(font->hfont);
DeleteDC(font->hdc);
IDirect3DDevice9_Release(font->device);
heap_free(font);
free(font);
}
return ref;
}
......@@ -233,14 +233,14 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadCharacters(ID3DXFont *iface, UINT fir
return D3D_OK;
count = last - first + 1;
indices = heap_alloc(count * sizeof(*indices));
indices = calloc(count, sizeof(*indices));
if (!indices)
return E_OUTOFMEMORY;
chars = heap_alloc(count * sizeof(*chars));
chars = calloc(count, sizeof(*chars));
if (!chars)
{
heap_free(indices);
free(indices);
return E_OUTOFMEMORY;
}
......@@ -262,8 +262,8 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadCharacters(ID3DXFont *iface, UINT fir
}
ID3DXFont_PreloadGlyphs(iface, start, end);
heap_free(chars);
heap_free(indices);
free(chars);
free(indices);
return D3D_OK;
}
......@@ -322,7 +322,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadGlyphs(ID3DXFont *iface, UINT first,
if (wine_rb_get(&font->glyph_tree, ULongToPtr(glyph)))
continue;
current_glyph = heap_alloc(sizeof(*current_glyph));
current_glyph = malloc(sizeof(*current_glyph));
if (!current_glyph)
{
if (mapped)
......@@ -343,7 +343,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadGlyphs(ID3DXFont *iface, UINT first,
if (!size)
continue;
buffer = heap_alloc(size);
buffer = malloc(size);
if (!buffer)
{
if (mapped)
......@@ -361,10 +361,10 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadGlyphs(ID3DXFont *iface, UINT first,
if (mapped)
IDirect3DTexture9_UnlockRect(current_texture, 0);
mapped = FALSE;
new_textures = heap_realloc(font->textures, new_texture_count * sizeof(*new_textures));
new_textures = realloc(font->textures, new_texture_count * sizeof(*new_textures));
if (!new_textures)
{
heap_free(buffer);
free(buffer);
return E_OUTOFMEMORY;
}
font->textures = new_textures;
......@@ -373,7 +373,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadGlyphs(ID3DXFont *iface, UINT first,
font->texture_size, 0, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED,
&font->textures[font->texture_count], NULL)))
{
heap_free(buffer);
free(buffer);
return hr;
}
......@@ -385,7 +385,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadGlyphs(ID3DXFont *iface, UINT first,
{
if (FAILED(hr = IDirect3DTexture9_LockRect(current_texture, 0, &lockrect, NULL, 0)))
{
heap_free(buffer);
free(buffer);
return hr;
}
mapped = TRUE;
......@@ -411,7 +411,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadGlyphs(ID3DXFont *iface, UINT first,
+ current_glyph->black_box.left + x] =
(buffer[y * stride + x] * 255 / 64 << 24) | 0x00ffffffu;
heap_free(buffer);
free(buffer);
++font->texture_pos;
}
if (mapped)
......@@ -436,7 +436,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadTextA(ID3DXFont *iface, const char *s
countW = MultiByteToWideChar(CP_ACP, 0, string, count < 0 ? -1 : count, NULL, 0);
wstr = heap_alloc(countW * sizeof(*wstr));
wstr = malloc(countW * sizeof(*wstr));
if (!wstr)
return E_OUTOFMEMORY;
......@@ -444,7 +444,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadTextA(ID3DXFont *iface, const char *s
hr = ID3DXFont_PreloadTextW(iface, wstr, count < 0 ? countW - 1 : countW);
heap_free(wstr);
free(wstr);
return hr;
}
......@@ -466,7 +466,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadTextW(ID3DXFont *iface, const WCHAR *
if (count < 0)
count = lstrlenW(string);
indices = heap_alloc(count * sizeof(*indices));
indices = malloc(count * sizeof(*indices));
if (!indices)
return E_OUTOFMEMORY;
......@@ -475,7 +475,7 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadTextW(ID3DXFont *iface, const WCHAR *
for (i = 0; i < count; ++i)
ID3DXFont_PreloadGlyphs(iface, indices[i], indices[i]);
heap_free(indices);
free(indices);
return D3D_OK;
}
......@@ -497,7 +497,7 @@ static INT WINAPI ID3DXFontImpl_DrawTextA(ID3DXFont *iface, ID3DXSprite *sprite,
if (!countW)
return 0;
wstr = heap_alloc_zero(countW * sizeof(*wstr));
wstr = calloc(countW, sizeof(*wstr));
if (!wstr)
return 0;
......@@ -506,7 +506,7 @@ static INT WINAPI ID3DXFontImpl_DrawTextA(ID3DXFont *iface, ID3DXSprite *sprite,
ret = ID3DXFont_DrawTextW(iface, sprite, wstr, count < 0 ? countW - 1 : countW,
rect, format, color);
heap_free(wstr);
free(wstr);
return ret;
}
......@@ -520,7 +520,7 @@ static void word_break(HDC hdc, const WCHAR *str, unsigned int *str_len,
*chars_used = 0;
sla = heap_alloc(*str_len * sizeof(*sla));
sla = malloc(*str_len * sizeof(*sla));
if (!sla)
return;
......@@ -549,7 +549,7 @@ static void word_break(HDC hdc, const WCHAR *str, unsigned int *str_len,
/* Remeasure the string */
GetTextExtentExPointW(hdc, str, *str_len, 0, NULL, NULL, size);
heap_free(sla);
free(sla);
}
static const WCHAR *read_line(HDC hdc, const WCHAR *str, unsigned int *count,
......@@ -675,7 +675,7 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite,
if (format & DT_SINGLELINE)
format &= ~DT_WORDBREAK;
line = heap_alloc(count * sizeof(*line));
line = malloc(count * sizeof(*line));
if (!line)
return 0;
......@@ -731,14 +731,14 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite,
memset(&results, 0, sizeof(results));
results.nGlyphs = line_len;
results.lpCaretPos = heap_alloc(line_len * sizeof(*results.lpCaretPos));
results.lpCaretPos = malloc(line_len * sizeof(*results.lpCaretPos));
if (!results.lpCaretPos)
goto cleanup;
results.lpGlyphs = heap_alloc(line_len * sizeof(*results.lpGlyphs));
results.lpGlyphs = malloc(line_len * sizeof(*results.lpGlyphs));
if (!results.lpGlyphs)
{
heap_free(results.lpCaretPos);
free(results.lpCaretPos);
goto cleanup;
}
......@@ -779,8 +779,8 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite,
IDirect3DTexture9_Release(texture);
}
heap_free(results.lpCaretPos);
heap_free(results.lpGlyphs);
free(results.lpCaretPos);
free(results.lpGlyphs);
y += lh;
if (!(DT_NOCLIP & format) && (y > rect->bottom))
......@@ -796,7 +796,7 @@ cleanup:
ID3DXSprite_Release(target);
}
heap_free(line);
free(line);
return ret;
}
......@@ -925,7 +925,7 @@ HRESULT WINAPI D3DXCreateFontIndirectW(IDirect3DDevice9 *device, const D3DXFONT_
}
IDirect3D9_Release(d3d);
object = heap_alloc_zero(sizeof(*object));
object = calloc(1, sizeof(*object));
if (!object)
{
*font = NULL;
......@@ -939,7 +939,7 @@ HRESULT WINAPI D3DXCreateFontIndirectW(IDirect3DDevice9 *device, const D3DXFONT_
object->hdc = CreateCompatibleDC(NULL);
if (!object->hdc)
{
heap_free(object);
free(object);
return D3DXERR_INVALIDDATA;
}
......@@ -948,7 +948,7 @@ HRESULT WINAPI D3DXCreateFontIndirectW(IDirect3DDevice9 *device, const D3DXFONT_
if (!object->hfont)
{
DeleteDC(object->hdc);
heap_free(object);
free(object);
return D3DXERR_INVALIDDATA;
}
SelectObject(object->hdc, object->hfont);
......@@ -959,7 +959,7 @@ HRESULT WINAPI D3DXCreateFontIndirectW(IDirect3DDevice9 *device, const D3DXFONT_
{
DeleteObject(object->hfont);
DeleteDC(object->hdc);
heap_free(object);
free(object);
return D3DXERR_INVALIDDATA;
}
......
......@@ -75,7 +75,7 @@ static ULONG WINAPI d3dx9_line_Release(ID3DXLine *iface)
if (!refcount)
{
IDirect3DDevice9_Release(line->device);
HeapFree(GetProcessHeap(), 0, line);
free(line);
}
return refcount;
......@@ -309,7 +309,7 @@ HRESULT WINAPI D3DXCreateLine(struct IDirect3DDevice9 *device, struct ID3DXLine
if (!device || !line)
return D3DERR_INVALIDCALL;
if (!(object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object))))
if (!(object = calloc(1, sizeof(*object))))
return E_OUTOFMEMORY;
object->ID3DXLine_iface.lpVtbl = &d3dx9_line_vtbl;
......
......@@ -928,8 +928,8 @@ static ULONG WINAPI ID3DXMatrixStackImpl_Release(ID3DXMatrixStack *iface)
TRACE("%p decreasing refcount to %lu.\n", iface, refcount);
if (!refcount)
{
HeapFree(GetProcessHeap(), 0, stack->stack);
HeapFree(GetProcessHeap(), 0, stack);
free(stack->stack);
free(stack);
}
return refcount;
}
......@@ -1002,7 +1002,7 @@ static HRESULT WINAPI ID3DXMatrixStackImpl_Pop(ID3DXMatrixStack *iface)
D3DXMATRIX *new_stack;
new_size = This->stack_size / 2;
new_stack = HeapReAlloc(GetProcessHeap(), 0, This->stack, new_size * sizeof(*new_stack));
new_stack = realloc(This->stack, new_size * sizeof(*new_stack));
if (new_stack)
{
This->stack_size = new_size;
......@@ -1029,7 +1029,7 @@ static HRESULT WINAPI ID3DXMatrixStackImpl_Push(ID3DXMatrixStack *iface)
if (This->stack_size > UINT_MAX / 2) return E_OUTOFMEMORY;
new_size = This->stack_size * 2;
new_stack = HeapReAlloc(GetProcessHeap(), 0, This->stack, new_size * sizeof(*new_stack));
new_stack = realloc(This->stack, new_size * sizeof(*new_stack));
if (!new_stack) return E_OUTOFMEMORY;
This->stack_size = new_size;
......@@ -1174,7 +1174,7 @@ HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, ID3DXMatrixStack **stack)
TRACE("flags %#lx, stack %p.\n", flags, stack);
if (!(object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object))))
if (!(object = calloc(1, sizeof(*object))))
{
*stack = NULL;
return E_OUTOFMEMORY;
......@@ -1182,9 +1182,9 @@ HRESULT WINAPI D3DXCreateMatrixStack(DWORD flags, ID3DXMatrixStack **stack)
object->ID3DXMatrixStack_iface.lpVtbl = &ID3DXMatrixStack_Vtbl;
object->ref = 1;
if (!(object->stack = HeapAlloc(GetProcessHeap(), 0, INITIAL_STACK_SIZE * sizeof(*object->stack))))
if (!(object->stack = malloc(INITIAL_STACK_SIZE * sizeof(*object->stack))))
{
HeapFree(GetProcessHeap(), 0, object);
free(object);
*stack = NULL;
return E_OUTOFMEMORY;
}
......
......@@ -308,7 +308,7 @@ static HRESULT regstore_alloc_table(struct d3dx_regstore *rs, unsigned int table
size = get_offset_reg(table, rs->table_sizes[table]) * table_info[table].component_size;
if (size)
{
rs->tables[table] = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
rs->tables[table] = calloc(1, size);
if (!rs->tables[table])
return E_OUTOFMEMORY;
}
......@@ -321,7 +321,7 @@ static void regstore_free_tables(struct d3dx_regstore *rs)
for (i = 0; i < PRES_REGTAB_COUNT; ++i)
{
HeapFree(GetProcessHeap(), 0, rs->tables[i]);
free(rs->tables[i]);
}
}
......@@ -593,7 +593,7 @@ static HRESULT append_const_set(struct d3dx_const_tab *const_tab, struct d3dx_co
if (!const_tab->const_set_size)
{
new_size = INITIAL_CONST_SET_SIZE;
new_alloc = HeapAlloc(GetProcessHeap(), 0, sizeof(*const_tab->const_set) * new_size);
new_alloc = malloc(sizeof(*const_tab->const_set) * new_size);
if (!new_alloc)
{
ERR("Out of memory.\n");
......@@ -603,8 +603,7 @@ static HRESULT append_const_set(struct d3dx_const_tab *const_tab, struct d3dx_co
else
{
new_size = const_tab->const_set_size * 2;
new_alloc = HeapReAlloc(GetProcessHeap(), 0, const_tab->const_set,
sizeof(*const_tab->const_set) * new_size);
new_alloc = realloc(const_tab->const_set, sizeof(*const_tab->const_set) * new_size);
if (!new_alloc)
{
ERR("Out of memory.\n");
......@@ -875,8 +874,8 @@ static HRESULT get_constants_desc(unsigned int *byte_code, struct d3dx_const_tab
goto cleanup;
}
out->inputs = cdesc = HeapAlloc(GetProcessHeap(), 0, sizeof(*cdesc) * desc.Constants);
out->inputs_param = inputs_param = HeapAlloc(GetProcessHeap(), 0, sizeof(*inputs_param) * desc.Constants);
out->inputs = cdesc = malloc(sizeof(*cdesc) * desc.Constants);
out->inputs_param = inputs_param = malloc(sizeof(*inputs_param) * desc.Constants);
if (!cdesc || !inputs_param)
{
hr = E_OUTOFMEMORY;
......@@ -980,8 +979,7 @@ static HRESULT get_constants_desc(unsigned int *byte_code, struct d3dx_const_tab
}
}
new_alloc = HeapReAlloc(GetProcessHeap(), 0, out->const_set,
sizeof(*out->const_set) * out->const_set_count);
new_alloc = realloc(out->const_set, sizeof(*out->const_set) * out->const_set_count);
if (new_alloc)
{
out->const_set = new_alloc;
......@@ -1158,7 +1156,7 @@ static HRESULT parse_preshader(struct d3dx_preshader *pres, unsigned int *ptr, u
return D3DXERR_INVALIDDATA;
}
TRACE("%u instructions.\n", pres->ins_count);
pres->ins = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*pres->ins) * pres->ins_count);
pres->ins = calloc(pres->ins_count, sizeof(*pres->ins));
if (!pres->ins)
return E_OUTOFMEMORY;
for (i = 0; i < pres->ins_count; ++i)
......@@ -1252,7 +1250,7 @@ HRESULT d3dx_create_param_eval(struct d3dx_parameters_store *parameters, void *b
return D3D_OK;
}
peval = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*peval));
peval = calloc(1, sizeof(*peval));
if (!peval)
{
ret = E_OUTOFMEMORY;
......@@ -1343,14 +1341,14 @@ err_out:
static void d3dx_free_const_tab(struct d3dx_const_tab *ctab)
{
HeapFree(GetProcessHeap(), 0, ctab->inputs);
HeapFree(GetProcessHeap(), 0, ctab->inputs_param);
HeapFree(GetProcessHeap(), 0, ctab->const_set);
free(ctab->inputs);
free(ctab->inputs_param);
free(ctab->const_set);
}
static void d3dx_free_preshader(struct d3dx_preshader *pres)
{
HeapFree(GetProcessHeap(), 0, pres->ins);
free(pres->ins);
regstore_free_tables(&pres->regs);
d3dx_free_const_tab(&pres->inputs);
......@@ -1365,7 +1363,7 @@ void d3dx_free_param_eval(struct d3dx_param_eval *peval)
d3dx_free_preshader(&peval->pres);
d3dx_free_const_tab(&peval->shader_inputs);
HeapFree(GetProcessHeap(), 0, peval);
free(peval);
}
static void pres_int_from_float(void *out, const void *in, unsigned int count)
......
......@@ -40,8 +40,7 @@ static HRESULT device_state_init(IDirect3DDevice9 *device, struct device_state *
if (FAILED(hr)) return hr;
state->num_render_targets = caps.NumSimultaneousRTs;
state->render_targets = HeapAlloc(GetProcessHeap(), 0,
state->num_render_targets * sizeof(IDirect3DSurface9 *));
state->render_targets = malloc(state->num_render_targets * sizeof(IDirect3DSurface9 *));
if (!state->render_targets)
return E_OUTOFMEMORY;
......@@ -100,7 +99,7 @@ static void device_state_release(struct device_state *state)
IDirect3DSurface9_Release(state->render_targets[i]);
}
HeapFree(GetProcessHeap(), 0, state->render_targets);
free(state->render_targets);
if (state->depth_stencil) IDirect3DSurface9_Release(state->depth_stencil);
}
......@@ -174,7 +173,7 @@ static ULONG WINAPI D3DXRenderToSurface_Release(ID3DXRenderToSurface *iface)
IDirect3DDevice9_Release(render->device);
HeapFree(GetProcessHeap(), 0, render);
free(render);
}
return ref;
......@@ -386,7 +385,7 @@ HRESULT WINAPI D3DXCreateRenderToSurface(IDirect3DDevice9 *device,
if (!device || !out) return D3DERR_INVALIDCALL;
render = HeapAlloc(GetProcessHeap(), 0, sizeof(struct render_to_surface));
render = malloc(sizeof(struct render_to_surface));
if (!render) return E_OUTOFMEMORY;
render->ID3DXRenderToSurface_iface.lpVtbl = &render_to_surface_vtbl;
......@@ -405,7 +404,7 @@ HRESULT WINAPI D3DXCreateRenderToSurface(IDirect3DDevice9 *device,
hr = device_state_init(device, &render->previous_state);
if (FAILED(hr))
{
HeapFree(GetProcessHeap(), 0, render);
free(render);
return hr;
}
......@@ -513,7 +512,7 @@ static ULONG WINAPI D3DXRenderToEnvMap_Release(ID3DXRenderToEnvMap *iface)
IDirect3DDevice9_Release(render->device);
HeapFree(GetProcessHeap(), 0, render);
free(render);
}
return ref;
......@@ -764,7 +763,7 @@ HRESULT WINAPI D3DXCreateRenderToEnvMap(IDirect3DDevice9 *device,
D3DUSAGE_RENDERTARGET, &format, D3DPOOL_DEFAULT);
if (FAILED(hr)) return hr;
render = HeapAlloc(GetProcessHeap(), 0, sizeof(struct render_to_envmap));
render = malloc(sizeof(*render));
if (!render) return E_OUTOFMEMORY;
render->ID3DXRenderToEnvMap_iface.lpVtbl = &render_to_envmap_vtbl;
......@@ -784,7 +783,7 @@ HRESULT WINAPI D3DXCreateRenderToEnvMap(IDirect3DDevice9 *device,
hr = device_state_init(device, &render->previous_device_state);
if (FAILED(hr))
{
HeapFree(GetProcessHeap(), 0, render);
free(render);
return hr;
}
......
......@@ -88,12 +88,12 @@ static ULONG WINAPI d3dx9_skin_info_Release(ID3DXSkinInfo *iface)
for (i = 0; i < skin->num_bones; ++i)
{
HeapFree(GetProcessHeap(), 0, skin->bones[i].name);
HeapFree(GetProcessHeap(), 0, skin->bones[i].vertices);
HeapFree(GetProcessHeap(), 0, skin->bones[i].weights);
free(skin->bones[i].name);
free(skin->bones[i].vertices);
free(skin->bones[i].weights);
}
HeapFree(GetProcessHeap(), 0, skin->bones);
HeapFree(GetProcessHeap(), 0, skin);
free(skin->bones);
free(skin);
}
return refcount;
......@@ -114,12 +114,12 @@ static HRESULT WINAPI d3dx9_skin_info_SetBoneInfluence(ID3DXSkinInfo *iface,
return D3DERR_INVALIDCALL;
if (num_influences) {
new_vertices = HeapAlloc(GetProcessHeap(), 0, num_influences * sizeof(*vertices));
new_vertices = malloc(num_influences * sizeof(*vertices));
if (!new_vertices)
return E_OUTOFMEMORY;
new_weights = HeapAlloc(GetProcessHeap(), 0, num_influences * sizeof(*weights));
new_weights = malloc(num_influences * sizeof(*weights));
if (!new_weights) {
HeapFree(GetProcessHeap(), 0, new_vertices);
free(new_vertices);
return E_OUTOFMEMORY;
}
memcpy(new_vertices, vertices, num_influences * sizeof(*vertices));
......@@ -127,8 +127,8 @@ static HRESULT WINAPI d3dx9_skin_info_SetBoneInfluence(ID3DXSkinInfo *iface,
}
bone = &skin->bones[bone_num];
bone->num_influences = num_influences;
HeapFree(GetProcessHeap(), 0, bone->vertices);
HeapFree(GetProcessHeap(), 0, bone->weights);
free(bone->vertices);
free(bone->weights);
bone->vertices = new_vertices;
bone->weights = new_weights;
......@@ -240,19 +240,16 @@ static HRESULT WINAPI d3dx9_skin_info_SetBoneName(ID3DXSkinInfo *iface, DWORD bo
{
struct d3dx9_skin_info *skin = impl_from_ID3DXSkinInfo(iface);
char *new_name;
size_t size;
TRACE("iface %p, bone_idx %lu, name %s.\n", iface, bone_idx, debugstr_a(name));
if (bone_idx >= skin->num_bones || !name)
return D3DERR_INVALIDCALL;
size = strlen(name) + 1;
new_name = HeapAlloc(GetProcessHeap(), 0, size);
new_name = strdup(name);
if (!new_name)
return E_OUTOFMEMORY;
memcpy(new_name, name, size);
HeapFree(GetProcessHeap(), 0, skin->bones[bone_idx].name);
free(skin->bones[bone_idx].name);
skin->bones[bone_idx].name = new_name;
return D3D_OK;
......@@ -476,7 +473,7 @@ HRESULT WINAPI D3DXCreateSkinInfo(DWORD vertex_count, const D3DVERTEXELEMENT9 *d
if (!skin_info || !declaration)
return D3DERR_INVALIDCALL;
object = HeapAlloc(GetProcessHeap(), 0, sizeof(*object));
object = calloc(1, sizeof(*object));
if (!object)
return E_OUTOFMEMORY;
......@@ -487,7 +484,7 @@ HRESULT WINAPI D3DXCreateSkinInfo(DWORD vertex_count, const D3DVERTEXELEMENT9 *d
object->vertex_declaration[0] = empty_declaration;
object->fvf = 0;
object->bones = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, bone_count * sizeof(*object->bones));
object->bones = calloc(bone_count, sizeof(*object->bones));
if (!object->bones) {
hr = E_OUTOFMEMORY;
goto error;
......@@ -500,8 +497,8 @@ HRESULT WINAPI D3DXCreateSkinInfo(DWORD vertex_count, const D3DVERTEXELEMENT9 *d
return D3D_OK;
error:
HeapFree(GetProcessHeap(), 0, object->bones);
HeapFree(GetProcessHeap(), 0, object);
free(object->bones);
free(object);
return hr;
}
......
......@@ -121,7 +121,7 @@ static ULONG WINAPI d3dx9_sprite_Release(ID3DXSprite *iface)
}
}
HeapFree(GetProcessHeap(), 0, sprite->sprites);
free(sprite->sprites);
}
if (sprite->stateblock)
......@@ -130,7 +130,7 @@ static ULONG WINAPI d3dx9_sprite_Release(ID3DXSprite *iface)
IDirect3DVertexDeclaration9_Release(sprite->vdecl);
if (sprite->device)
IDirect3DDevice9_Release(sprite->device);
HeapFree(GetProcessHeap(), 0, sprite);
free(sprite);
}
return refcount;
......@@ -344,6 +344,7 @@ static HRESULT WINAPI d3dx9_sprite_Draw(ID3DXSprite *iface, IDirect3DTexture9 *t
struct d3dx9_sprite *This = impl_from_ID3DXSprite(iface);
struct sprite *new_sprites;
D3DSURFACE_DESC texdesc;
int new_size;
TRACE("iface %p, texture %p, rect %s, center %p, position %p, color 0x%08lx.\n",
iface, texture, wine_dbgstr_rect(rect), center, position, color);
......@@ -351,19 +352,14 @@ static HRESULT WINAPI d3dx9_sprite_Draw(ID3DXSprite *iface, IDirect3DTexture9 *t
if(texture==NULL) return D3DERR_INVALIDCALL;
if(!This->ready) return D3DERR_INVALIDCALL;
if (!This->allocated_sprites)
if (This->allocated_sprites <= This->sprite_count)
{
This->sprites = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 32 * sizeof(*This->sprites));
This->allocated_sprites = 32;
}
else if (This->allocated_sprites <= This->sprite_count)
{
new_sprites = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
This->sprites, This->allocated_sprites * 2 * sizeof(*This->sprites));
new_size = This->allocated_sprites ? This->allocated_sprites * 2 : 32;
new_sprites = realloc(This->sprites, new_size * sizeof(*This->sprites));
if (!new_sprites)
return E_OUTOFMEMORY;
This->sprites = new_sprites;
This->allocated_sprites *= 2;
This->allocated_sprites = new_size;
}
This->sprites[This->sprite_count].texture=texture;
if(!(This->flags & D3DXSPRITE_DO_NOT_ADDREF_TEXTURE))
......@@ -418,7 +414,7 @@ static HRESULT WINAPI d3dx9_sprite_Flush(ID3DXSprite *iface)
if(!This->sprite_count) return D3D_OK;
/* TODO: use of a vertex buffer here */
vertices = HeapAlloc(GetProcessHeap(), 0, sizeof(*vertices) * 6 * This->sprite_count);
vertices = malloc(sizeof(*vertices) * 6 * This->sprite_count);
for(start=0;start<This->sprite_count;start+=count,count=0) {
i=start;
......@@ -467,7 +463,7 @@ static HRESULT WINAPI d3dx9_sprite_Flush(ID3DXSprite *iface)
IDirect3DDevice9_DrawPrimitiveUP(This->device, D3DPT_TRIANGLELIST,
2 * count, vertices + 6 * start, sizeof(*vertices));
}
HeapFree(GetProcessHeap(), 0, vertices);
free(vertices);
if(!(This->flags & D3DXSPRITE_DO_NOT_ADDREF_TEXTURE))
for(i=0;i<This->sprite_count;i++)
......@@ -571,7 +567,7 @@ HRESULT WINAPI D3DXCreateSprite(struct IDirect3DDevice9 *device, struct ID3DXSpr
if(device==NULL || sprite==NULL) return D3DERR_INVALIDCALL;
if (!(object=HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object))))
if (!(object = calloc(1, sizeof(*object))))
{
*sprite = NULL;
return E_OUTOFMEMORY;
......
......@@ -869,7 +869,7 @@ static BOOL convert_dib_to_bmp(const void **data, unsigned int *size)
TRACE("Converting DIB file to BMP\n");
new_size = *size + sizeof(BITMAPFILEHEADER);
new_data = HeapAlloc(GetProcessHeap(), 0, new_size);
new_data = malloc(new_size);
CopyMemory(new_data + sizeof(BITMAPFILEHEADER), *data, *size);
/* Add BMP header */
......@@ -1058,7 +1058,7 @@ HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(const void *data, UINT datasize,
IWICBitmapDecoder_Release(decoder);
if (dib)
HeapFree(GetProcessHeap(), 0, (void*)data);
free((void*)data);
if (FAILED(hr)) {
TRACE("Invalid or unsupported image file\n");
......@@ -1090,11 +1090,11 @@ HRESULT WINAPI D3DXGetImageInfoFromFileA(const char *file, D3DXIMAGE_INFO *info)
if( !file ) return D3DERR_INVALIDCALL;
strlength = MultiByteToWideChar(CP_ACP, 0, file, -1, NULL, 0);
widename = HeapAlloc(GetProcessHeap(), 0, strlength * sizeof(*widename));
widename = malloc(strlength * sizeof(*widename));
MultiByteToWideChar(CP_ACP, 0, file, -1, widename, strlength);
hr = D3DXGetImageInfoFromFileW(widename, info);
HeapFree(GetProcessHeap(), 0, widename);
free(widename);
return hr;
}
......@@ -1286,7 +1286,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(IDirect3DSurface9 *pDestSurface,
WICColor *colors = NULL;
pitch = formatdesc->bytes_per_pixel * wicrect.Width;
buffer = HeapAlloc(GetProcessHeap(), 0, pitch * wicrect.Height);
buffer = malloc(pitch * wicrect.Height);
hr = IWICBitmapFrameDecode_CopyPixels(bitmapframe, &wicrect, pitch,
pitch * wicrect.Height, buffer);
......@@ -1303,8 +1303,8 @@ HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(IDirect3DSurface9 *pDestSurface,
hr = IWICPalette_GetColorCount(wic_palette, &nb_colors);
if (SUCCEEDED(hr))
{
colors = HeapAlloc(GetProcessHeap(), 0, nb_colors * sizeof(colors[0]));
palette = HeapAlloc(GetProcessHeap(), 0, nb_colors * sizeof(palette[0]));
colors = malloc(nb_colors * sizeof(colors[0]));
palette = malloc(nb_colors * sizeof(palette[0]));
if (!colors || !palette)
hr = E_OUTOFMEMORY;
}
......@@ -1334,9 +1334,9 @@ HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(IDirect3DSurface9 *pDestSurface,
palette, &rect, dwFilter, Colorkey);
}
HeapFree(GetProcessHeap(), 0, colors);
HeapFree(GetProcessHeap(), 0, palette);
HeapFree(GetProcessHeap(), 0, buffer);
free(colors);
free(palette);
free(buffer);
}
IWICBitmapFrameDecode_Release(bitmapframe);
......@@ -1349,7 +1349,7 @@ cleanup_err:
IWICImagingFactory_Release(factory);
if (imginfo.ImageFileFormat == D3DXIFF_DIB)
HeapFree(GetProcessHeap(), 0, (void*)pSrcData);
free((void*)pSrcData);
if (FAILED(hr))
return D3DXERR_INVALIDDATA;
......@@ -1377,12 +1377,12 @@ HRESULT WINAPI D3DXLoadSurfaceFromFileA(IDirect3DSurface9 *dst_surface,
return D3DERR_INVALIDCALL;
strlength = MultiByteToWideChar(CP_ACP, 0, src_file, -1, NULL, 0);
src_file_w = HeapAlloc(GetProcessHeap(), 0, strlength * sizeof(*src_file_w));
src_file_w = malloc(strlength * sizeof(*src_file_w));
MultiByteToWideChar(CP_ACP, 0, src_file, -1, src_file_w, strlength);
hr = D3DXLoadSurfaceFromFileW(dst_surface, dst_palette, dst_rect,
src_file_w, src_rect, filter, color_key, src_info);
HeapFree(GetProcessHeap(), 0, src_file_w);
free(src_file_w);
return hr;
}
......@@ -2040,7 +2040,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
src_pitch = src_pitch * srcformatdesc->block_width / srcformatdesc->block_byte_count;
src_uncompressed = heap_alloc(src_size.width * src_size.height * sizeof(DWORD));
src_uncompressed = malloc(src_size.width * src_size.height * sizeof(DWORD));
if (!src_uncompressed)
{
unlock_surface(dst_surface, &dst_rect_aligned, surface, FALSE);
......@@ -2086,15 +2086,16 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
|| dst_rect->top != dst_rect_aligned.top
|| dst_rect->right != dst_rect_aligned.right
|| dst_rect->bottom != dst_rect_aligned.bottom;
size_t dst_uncompressed_size = dst_size_aligned.width * dst_size_aligned.height * sizeof(DWORD);
dst_uncompressed = HeapAlloc(GetProcessHeap(), dst_misaligned ? HEAP_ZERO_MEMORY : 0,
dst_size_aligned.width * dst_size_aligned.height * sizeof(DWORD));
dst_uncompressed = malloc(dst_uncompressed_size);
if (!dst_uncompressed)
{
heap_free(src_uncompressed);
free(src_uncompressed);
unlock_surface(dst_surface, &dst_rect_aligned, surface, FALSE);
return E_OUTOFMEMORY;
}
if (dst_misaligned) memset(dst_uncompressed, 0, dst_uncompressed_size);
dst_pitch = dst_size_aligned.width * sizeof(DWORD);
dst_format = get_format_info(D3DFMT_A8B8G8R8);
dst_mem = dst_uncompressed + (dst_rect->top - dst_rect_aligned.top) * dst_pitch
......@@ -2123,7 +2124,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
dst_mem, dst_pitch, 0, &dst_size, dst_format, color_key, src_palette);
}
heap_free(src_uncompressed);
free(src_uncompressed);
if (dst_uncompressed)
{
......@@ -2149,7 +2150,7 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
tx_compress_dxtn(4, dst_size_aligned.width, dst_size_aligned.height,
dst_uncompressed, gl_format, lockrect.pBits,
lockrect.Pitch);
heap_free(dst_uncompressed);
free(dst_uncompressed);
}
}
......@@ -2323,7 +2324,7 @@ HRESULT WINAPI D3DXSaveSurfaceToFileA(const char *dst_filename, D3DXIMAGE_FILEFO
if (!dst_filename) return D3DERR_INVALIDCALL;
len = MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, NULL, 0);
filename = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
filename = malloc(len * sizeof(WCHAR));
if (!filename) return E_OUTOFMEMORY;
MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, filename, len);
......@@ -2334,7 +2335,7 @@ HRESULT WINAPI D3DXSaveSurfaceToFileA(const char *dst_filename, D3DXIMAGE_FILEFO
ID3DXBuffer_Release(buffer);
}
HeapFree(GetProcessHeap(), 0, filename);
free(filename);
return hr;
}
......@@ -2507,7 +2508,7 @@ HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE
size.height = height;
size.depth = 1;
dst_pitch = width * dst_format_desc->bytes_per_pixel;
dst_data = HeapAlloc(GetProcessHeap(), 0, dst_pitch * height);
dst_data = malloc(dst_pitch * height);
if (!dst_data)
{
hr = E_OUTOFMEMORY;
......@@ -2515,7 +2516,7 @@ HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE
}
if (FAILED(hr = lock_surface(src_surface, src_rect, &locked_rect, &temp_surface, FALSE)))
{
HeapFree(GetProcessHeap(), 0, dst_data);
free(dst_data);
goto cleanup;
}
convert_argb_pixels(locked_rect.pBits, locked_rect.Pitch, 0, &size, src_format_desc,
......@@ -2523,7 +2524,7 @@ HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(ID3DXBuffer **dst_buffer, D3DXIMAGE
unlock_surface(src_surface, src_rect, temp_surface, FALSE);
IWICBitmapFrameEncode_WritePixels(frame, height, dst_pitch, dst_pitch * height, dst_data);
HeapFree(GetProcessHeap(), 0, dst_data);
free(dst_data);
}
hr = IWICBitmapFrameEncode_Commit(frame);
......
......@@ -801,14 +801,14 @@ HRESULT WINAPI D3DXCreateTextureFromFileExA(struct IDirect3DDevice9 *device, con
return D3DERR_INVALIDCALL;
len = MultiByteToWideChar(CP_ACP, 0, srcfile, -1, NULL, 0);
widename = HeapAlloc(GetProcessHeap(), 0, len * sizeof(*widename));
widename = malloc(len * sizeof(*widename));
MultiByteToWideChar(CP_ACP, 0, srcfile, -1, widename, len);
hr = D3DXCreateTextureFromFileExW(device, widename, width, height, miplevels,
usage, format, pool, filter, mipfilter,
colorkey, srcinfo, palette, texture);
HeapFree(GetProcessHeap(), 0, widename);
free(widename);
return hr;
}
......@@ -981,12 +981,12 @@ HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(IDirect3DDevice9 *device,
if (!filename) return D3DERR_INVALIDCALL;
len = MultiByteToWideChar(CP_ACP, 0, filename, -1, NULL, 0);
filenameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
filenameW = malloc(len * sizeof(WCHAR));
if (!filenameW) return E_OUTOFMEMORY;
MultiByteToWideChar(CP_ACP, 0, filename, -1, filenameW, len);
hr = map_view_of_file(filenameW, &data, &data_size);
HeapFree(GetProcessHeap(), 0, filenameW);
free(filenameW);
if (FAILED(hr)) return D3DXERR_INVALIDDATA;
hr = D3DXCreateVolumeTextureFromFileInMemoryEx(device, data, data_size, D3DX_DEFAULT, D3DX_DEFAULT, D3DX_DEFAULT,
......@@ -1049,12 +1049,12 @@ HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(IDirect3DDevice9 *device,
if (!filename) return D3DERR_INVALIDCALL;
len = MultiByteToWideChar(CP_ACP, 0, filename, -1, NULL, 0);
filenameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
filenameW = malloc(len * sizeof(WCHAR));
if (!filenameW) return E_OUTOFMEMORY;
MultiByteToWideChar(CP_ACP, 0, filename, -1, filenameW, len);
hr = map_view_of_file(filenameW, &data, &data_size);
HeapFree(GetProcessHeap(), 0, filenameW);
free(filenameW);
if (FAILED(hr)) return D3DXERR_INVALIDDATA;
hr = D3DXCreateVolumeTextureFromFileInMemoryEx(device, data, data_size, width, height, depth,
......@@ -1520,14 +1520,14 @@ HRESULT WINAPI D3DXCreateCubeTextureFromFileA(IDirect3DDevice9 *device,
if (!src_filename) return D3DERR_INVALIDCALL;
len = MultiByteToWideChar(CP_ACP, 0, src_filename, -1, NULL, 0);
filename = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
filename = malloc(len * sizeof(WCHAR));
if (!filename) return E_OUTOFMEMORY;
MultiByteToWideChar(CP_ACP, 0, src_filename, -1, filename, len);
hr = map_view_of_file(filename, &data, &data_size);
if (FAILED(hr))
{
HeapFree(GetProcessHeap(), 0, filename);
free(filename);
return D3DXERR_INVALIDDATA;
}
......@@ -1535,7 +1535,7 @@ HRESULT WINAPI D3DXCreateCubeTextureFromFileA(IDirect3DDevice9 *device,
0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, cube_texture);
UnmapViewOfFile(data);
HeapFree(GetProcessHeap(), 0, filename);
free(filename);
return hr;
}
......@@ -1578,14 +1578,14 @@ HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(IDirect3DDevice9 *device, const
if (!src_filename) return D3DERR_INVALIDCALL;
len = MultiByteToWideChar(CP_ACP, 0, src_filename, -1, NULL, 0);
filename = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
filename = malloc(len * sizeof(WCHAR));
if (!filename) return E_OUTOFMEMORY;
MultiByteToWideChar(CP_ACP, 0, src_filename, -1, filename, len);
hr = map_view_of_file(filename, &data, &data_size);
if (FAILED(hr))
{
HeapFree(GetProcessHeap(), 0, filename);
free(filename);
return D3DXERR_INVALIDDATA;
}
......@@ -1593,7 +1593,7 @@ HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(IDirect3DDevice9 *device, const
usage, format, pool, filter, mip_filter, color_key, image_info, palette, cube_texture);
UnmapViewOfFile(data);
HeapFree(GetProcessHeap(), 0, filename);
free(filename);
return hr;
}
......@@ -1809,7 +1809,7 @@ HRESULT WINAPI D3DXSaveTextureToFileA(const char *dst_filename, D3DXIMAGE_FILEFO
if (!dst_filename) return D3DERR_INVALIDCALL;
len = MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, NULL, 0);
filename = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
filename = malloc(len * sizeof(WCHAR));
if (!filename) return E_OUTOFMEMORY;
MultiByteToWideChar(CP_ACP, 0, dst_filename, -1, filename, len);
......@@ -1820,7 +1820,7 @@ HRESULT WINAPI D3DXSaveTextureToFileA(const char *dst_filename, D3DXIMAGE_FILEFO
ID3DXBuffer_Release(buffer);
}
HeapFree(GetProcessHeap(), 0, filename);
free(filename);
return hr;
}
......
......@@ -36,13 +36,13 @@ HRESULT WINAPI D3DXLoadVolumeFromFileA(IDirect3DVolume9 *dst_volume, const PALET
if (!dst_volume || !filename) return D3DERR_INVALIDCALL;
length = MultiByteToWideChar(CP_ACP, 0, filename, -1, NULL, 0);
filenameW = HeapAlloc(GetProcessHeap(), 0, length * sizeof(*filenameW));
filenameW = malloc(length * sizeof(*filenameW));
if (!filenameW) return E_OUTOFMEMORY;
MultiByteToWideChar(CP_ACP, 0, filename, -1, filenameW, length);
hr = D3DXLoadVolumeFromFileW(dst_volume, dst_palette, dst_box, filenameW,
src_box, filter, color_key, info);
HeapFree(GetProcessHeap(), 0, filenameW);
free(filenameW);
return hr;
}
......
......@@ -129,9 +129,9 @@ static ULONG WINAPI d3dx9_file_data_Release(ID3DXFileData *iface)
ID3DXFileData *child = file_data->children[i];
child->lpVtbl->Release(child);
}
HeapFree(GetProcessHeap(), 0, file_data->children);
free(file_data->children);
IDirectXFileData_Release(file_data->dxfile_data);
HeapFree(GetProcessHeap(), 0, file_data);
free(file_data);
}
return refcount;
......@@ -303,7 +303,7 @@ static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFi
*ret_iface = NULL;
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
object = calloc(1, sizeof(*object));
if (!object)
return E_OUTOFMEMORY;
......@@ -322,7 +322,7 @@ static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFi
IUnknown_Release(reference);
if (FAILED(ret))
{
HeapFree(GetProcessHeap(), 0, object);
free(object);
return E_FAIL;
}
object->reference = TRUE;
......@@ -330,7 +330,7 @@ static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFi
else
{
FIXME("Don't know what to do with binary object\n");
HeapFree(GetProcessHeap(), 0, object);
free(object);
return E_FAIL;
}
}
......@@ -341,17 +341,8 @@ static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFi
{
ID3DXFileData **new_children;
if (object->children)
{
children_array_size *= 2;
new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
sizeof(*object->children) * children_array_size);
}
else
{
children_array_size = 4;
new_children = HeapAlloc(GetProcessHeap(), 0, sizeof(*object->children) * children_array_size);
}
children_array_size = object->children ? children_array_size * 2 : 4;
new_children = realloc(object->children, sizeof(*object->children) * children_array_size);
if (!new_children)
{
ret = E_OUTOFMEMORY;
......@@ -374,8 +365,7 @@ static HRESULT d3dx9_file_data_create(IDirectXFileObject *dxfile_object, ID3DXFi
{
ID3DXFileData **new_children;
new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
sizeof(*object->children) * object->child_count);
new_children = realloc(object->children, sizeof(*object->children) * object->child_count);
if (new_children)
object->children = new_children;
}
......@@ -431,8 +421,8 @@ static ULONG WINAPI d3dx9_file_enum_object_Release(ID3DXFileEnumObject *iface)
ID3DXFileData *child = file_enum->children[i];
child->lpVtbl->Release(child);
}
HeapFree(GetProcessHeap(), 0, file_enum->children);
HeapFree(GetProcessHeap(), 0, file_enum);
free(file_enum->children);
free(file_enum);
}
return refcount;
......@@ -540,7 +530,7 @@ static ULONG WINAPI d3dx9_file_Release(ID3DXFile *iface)
if (!refcount)
{
IDirectXFile_Release(file->dxfile);
HeapFree(GetProcessHeap(), 0, file);
free(file);
}
return refcount;
......@@ -597,7 +587,7 @@ static HRESULT WINAPI d3dx9_file_CreateEnumObject(ID3DXFile *iface, const void *
return E_NOTIMPL;
}
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object));
object = calloc(1, sizeof(*object));
if (!object)
return E_OUTOFMEMORY;
......@@ -608,7 +598,7 @@ static HRESULT WINAPI d3dx9_file_CreateEnumObject(ID3DXFile *iface, const void *
if (ret != S_OK)
{
HeapFree(GetProcessHeap(), 0, object);
free(object);
return ret;
}
......@@ -619,17 +609,8 @@ static HRESULT WINAPI d3dx9_file_CreateEnumObject(ID3DXFile *iface, const void *
{
ID3DXFileData **new_children;
if (object->children)
{
children_array_size *= 2;
new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
sizeof(*object->children) * children_array_size);
}
else
{
children_array_size = 4;
new_children = HeapAlloc(GetProcessHeap(), 0, sizeof(*object->children) * children_array_size);
}
children_array_size = object->children ? children_array_size * 2 : 4;
new_children = realloc(object->children, sizeof(*object->children) * children_array_size);
if (!new_children)
{
ret = E_OUTOFMEMORY;
......@@ -648,8 +629,7 @@ static HRESULT WINAPI d3dx9_file_CreateEnumObject(ID3DXFile *iface, const void *
{
ID3DXFileData **new_children;
new_children = HeapReAlloc(GetProcessHeap(), 0, object->children,
sizeof(*object->children) * object->child_count);
new_children = realloc(object->children, sizeof(*object->children) * object->child_count);
if (new_children)
object->children = new_children;
}
......@@ -722,14 +702,14 @@ HRESULT WINAPI D3DXFileCreate(ID3DXFile **d3dxfile)
*d3dxfile = NULL;
object = HeapAlloc(GetProcessHeap(), 0, sizeof(*object));
object = calloc(1, sizeof(*object));
if (!object)
return E_OUTOFMEMORY;
ret = DirectXFileCreate(&object->dxfile);
if (ret != S_OK)
{
HeapFree(GetProcessHeap(), 0, object);
free(object);
if (ret == E_OUTOFMEMORY)
return ret;
return E_FAIL;
......
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