1/* 7zAlloc.c -- Allocation functions 22010-10-29 : Igor Pavlov : Public domain */ 3 4#include "7zAlloc.h" 5 6/* #define _SZ_ALLOC_DEBUG */ 7/* use _SZ_ALLOC_DEBUG to debug alloc/free operations */ 8 9#ifdef _SZ_ALLOC_DEBUG 10 11#ifdef _WIN32 12#include <windows.h> 13#endif 14 15#include <stdio.h> 16int g_allocCount = 0; 17int g_allocCountTemp = 0; 18 19#endif 20 21void *SzAlloc(void *p, size_t size) 22{ 23 p = p; 24 if (size == 0) 25 return 0; 26 #ifdef _SZ_ALLOC_DEBUG 27 fprintf(stderr, "\nAlloc %10d bytes; count = %10d", size, g_allocCount); 28 g_allocCount++; 29 #endif 30 return malloc(size); 31} 32 33void SzFree(void *p, void *address) 34{ 35 p = p; 36 #ifdef _SZ_ALLOC_DEBUG 37 if (address != 0) 38 { 39 g_allocCount--; 40 fprintf(stderr, "\nFree; count = %10d", g_allocCount); 41 } 42 #endif 43 free(address); 44} 45 46void *SzAllocTemp(void *p, size_t size) 47{ 48 p = p; 49 if (size == 0) 50 return 0; 51 #ifdef _SZ_ALLOC_DEBUG 52 fprintf(stderr, "\nAlloc_temp %10d bytes; count = %10d", size, g_allocCountTemp); 53 g_allocCountTemp++; 54 #ifdef _WIN32 55 return HeapAlloc(GetProcessHeap(), 0, size); 56 #endif 57 #endif 58 return malloc(size); 59} 60 61void SzFreeTemp(void *p, void *address) 62{ 63 p = p; 64 #ifdef _SZ_ALLOC_DEBUG 65 if (address != 0) 66 { 67 g_allocCountTemp--; 68 fprintf(stderr, "\nFree_temp; count = %10d", g_allocCountTemp); 69 } 70 #ifdef _WIN32 71 HeapFree(GetProcessHeap(), 0, address); 72 return; 73 #endif 74 #endif 75 free(address); 76} 77