all repos — mgba @ b2d406a411b31acce5bbf0246af32a80c22ca834

mGBA Game Boy Advance Emulator

src/third-party/lzma/7zAlloc.c (view raw)

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