- add sources.
[platform/framework/web/crosswalk.git] / src / third_party / lzma_sdk / 7zAlloc.c
1 /* 7zAlloc.c -- Allocation functions
2 2010-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>
16 int g_allocCount = 0;
17 int g_allocCountTemp = 0;
18
19 #endif
20
21 void *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
33 void 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
46 void *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
61 void 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 }