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