Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

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