summaryrefslogtreecommitdiff
path: root/alf/alflayout.cpp
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2019-01-25 21:45:01 +0100
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2019-01-25 21:45:01 +0100
commit55211af76164fe6c39249c14be47363d35a4db0f (patch)
tree417d9e8805c52d6421798331bea59993e7f1fa1a /alf/alflayout.cpp
parent02d94ecd62e11e28ba87451c392cc6b633bb5c56 (diff)
add memory allocation functions
Diffstat (limited to 'alf/alflayout.cpp')
-rw-r--r--alf/alflayout.cpp18
1 files changed, 12 insertions, 6 deletions
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;