Source code

Revision control

Copy as Markdown

Other Tools

/* 7zAlloc.c -- Allocation functions↩
2017-04-03 : Igor Pavlov : Public domain */
#include "Precomp.h"
#include <stdlib.h>↩
#include "7zAlloc.h"
/* #define _SZ_ALLOC_DEBUG */
/* use _SZ_ALLOC_DEBUG to debug alloc/free operations */
#ifdef _SZ_ALLOC_DEBUG↩
#ifdef _WIN32↩
#include <windows.h>↩
#endif
#include <stdio.h>↩
int g_allocCount = 0;↩
int g_allocCountTemp = 0;↩
#endif
void *SzAlloc(ISzAllocPtr p, size_t size)↩
{↩
UNUSED_VAR(p);↩
if (size == 0)↩
return 0;↩
#ifdef _SZ_ALLOC_DEBUG↩
fprintf(stderr, "\nAlloc %10u bytes; count = %10d", (unsigned)size, g_allocCount);↩
g_allocCount++;↩
#endif
return malloc(size);↩
}↩
void SzFree(ISzAllocPtr p, void *address)↩
{↩
UNUSED_VAR(p);↩
#ifdef _SZ_ALLOC_DEBUG↩
if (address != 0)↩
{↩
g_allocCount--;↩
fprintf(stderr, "\nFree; count = %10d", g_allocCount);↩
}↩
#endif
free(address);↩
}↩
void *SzAllocTemp(ISzAllocPtr p, size_t size)↩
{↩
UNUSED_VAR(p);↩
if (size == 0)↩
return 0;↩
#ifdef _SZ_ALLOC_DEBUG↩
fprintf(stderr, "\nAlloc_temp %10u bytes; count = %10d", (unsigned)size, g_allocCountTemp);↩
g_allocCountTemp++;↩
#ifdef _WIN32↩
return HeapAlloc(GetProcessHeap(), 0, size);↩
#endif
#endif
return malloc(size);↩
}↩
void SzFreeTemp(ISzAllocPtr p, void *address)↩
{↩
UNUSED_VAR(p);↩
#ifdef _SZ_ALLOC_DEBUG↩
if (address != 0)↩
{↩
g_allocCountTemp--;↩
fprintf(stderr, "\nFree_temp; count = %10d", g_allocCountTemp);↩
}↩
#ifdef _WIN32↩
HeapFree(GetProcessHeap(), 0, address);↩
return;↩
#endif
#endif
free(address);↩
}↩