1 /* 7zAlloc.c -- Allocation functions
\r
2 2015-11-09 : Igor Pavlov : Public domain */
\r
8 /* #define _SZ_ALLOC_DEBUG */
\r
9 /* use _SZ_ALLOC_DEBUG to debug alloc/free operations */
\r
11 #ifdef _SZ_ALLOC_DEBUG
\r
14 #include <windows.h>
\r
18 int g_allocCount = 0;
\r
19 int g_allocCountTemp = 0;
\r
23 void *SzAlloc(void *p, size_t size)
\r
28 #ifdef _SZ_ALLOC_DEBUG
\r
29 fprintf(stderr, "\nAlloc %10u bytes; count = %10d", (unsigned)size, g_allocCount);
\r
32 return malloc(size);
\r
35 void SzFree(void *p, void *address)
\r
38 #ifdef _SZ_ALLOC_DEBUG
\r
42 fprintf(stderr, "\nFree; count = %10d", g_allocCount);
\r
48 void *SzAllocTemp(void *p, size_t size)
\r
53 #ifdef _SZ_ALLOC_DEBUG
\r
54 fprintf(stderr, "\nAlloc_temp %10u bytes; count = %10d", (unsigned)size, g_allocCountTemp);
\r
57 return HeapAlloc(GetProcessHeap(), 0, size);
\r
60 return malloc(size);
\r
63 void SzFreeTemp(void *p, void *address)
\r
66 #ifdef _SZ_ALLOC_DEBUG
\r
70 fprintf(stderr, "\nFree_temp; count = %10d", g_allocCountTemp);
\r
73 HeapFree(GetProcessHeap(), 0, address);
\r