From 55211af76164fe6c39249c14be47363d35a4db0f Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Fri, 25 Jan 2019 21:45:01 +0100 Subject: add memory allocation functions --- alf/alflayout.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'alf/alflayout.cpp') diff --git a/alf/alflayout.cpp b/alf/alflayout.cpp index cb89965..5e79443 100644 --- a/alf/alflayout.cpp +++ b/alf/alflayout.cpp @@ -11,9 +11,15 @@ void ALF_Layout_Clear(ALFLayout *layout) { ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { - HeapFree(GetProcessHeap(), 0, w); + ALF_Free(w); } ALF_ListInit(&layout->widgets); + ALF_Free(layout->columns); + ALF_Free(layout->rows); + layout->columns = NULL; + layout->rows = NULL; + layout->nColumns = 0; + layout->nRows = 0; } @@ -59,20 +65,20 @@ ALF_Layout_CalcSizes(ALFLayout* layout, HWND window) // FIXME! overflow, use reallocarray(2) equivalent if (layout->nColumns == 0) { layout->nColumns = 1; - layout->columns = (ALFLayoutRowOrColumn*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY | HEAP_GENERATE_EXCEPTIONS, layout->nColumns*sizeof(layout->columns[0])); + layout->columns = ALF_New(ALFLayoutRowOrColumn, layout->nColumns); } else { layout->nColumns *= 2; - layout->columns = (ALFLayoutRowOrColumn*)HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY | HEAP_GENERATE_EXCEPTIONS, layout->columns, layout->nColumns*sizeof(layout->columns[0])); + layout->columns = ALF_ReNew(layout->columns, ALFLayoutRowOrColumn, layout->nColumns); } } while ((int)c->y >= layout->nRows) { // FIXME! overflow, use reallocarray(2) equivalent if (layout->nRows == 0) { layout->nRows = 1; - layout->rows = (ALFLayoutRowOrColumn*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY | HEAP_GENERATE_EXCEPTIONS, layout->nRows*sizeof(layout->rows[0])); + layout->rows = ALF_New(ALFLayoutRowOrColumn, layout->nRows); } else { layout->nRows *= 2; - layout->rows = (ALFLayoutRowOrColumn*)HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY | HEAP_GENERATE_EXCEPTIONS, layout->rows, layout->nRows*sizeof(layout->rows[0])); + layout->rows = ALF_ReNew(layout->rows, ALFLayoutRowOrColumn, layout->nRows); } } @@ -244,7 +250,7 @@ ALF_Layout_Apply(ALFLayout* layout, HWND window) void ALF_Layout_AddWidget(ALFLayout* layout, HWND window, const ALFWidgetLayoutParams* params) { - ALFWidgetPriv *w = (ALFWidgetPriv*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY|HEAP_GENERATE_EXCEPTIONS, sizeof(ALFWidgetPriv)); + ALFWidgetPriv *w = ALF_New(ALFWidgetPriv, 1); w->hwnd = params->hwnd; w->x = params->x; w->y = params->y; -- cgit v1.2.3