Line data Source code
1 : #include "burp.h"
2 : #include "alloc.h"
3 : #include "log.h"
4 :
5 : #ifdef UTEST
6 : uint64_t alloc_count=0;
7 : uint64_t free_count=0;
8 17 : void alloc_counters_reset(void)
9 : {
10 17 : alloc_count=0;
11 17 : free_count=0;
12 17 : }
13 : #endif
14 :
15 168578 : char *strdup_w(const char *s, const char *func)
16 : {
17 : char *ret;
18 168578 : if(!(ret=strdup(s))) log_oom_w(__func__, func);
19 : #ifdef UTEST
20 168578 : else alloc_count++;
21 : #endif
22 168578 : return ret;
23 : }
24 :
25 90736 : void *realloc_w(void *ptr, size_t size, const char *func)
26 : {
27 : void *ret;
28 : #ifdef UTEST
29 90736 : int already_alloced=0;
30 90736 : if(ptr) already_alloced=1;
31 : #endif
32 90736 : if(!(ret=realloc(ptr, size))) log_oom_w(__func__, func);
33 : #ifdef UTEST
34 90736 : else if(!already_alloced) alloc_count++;
35 : #endif
36 90736 : return ret;
37 : }
38 :
39 362551 : void *malloc_w(size_t size, const char *func)
40 : {
41 : void *ret;
42 362551 : if(!(ret=malloc(size))) log_oom_w(__func__, func);
43 : #ifdef UTEST
44 362551 : else alloc_count++;
45 : #endif
46 362551 : return ret;
47 : }
48 :
49 360435 : void *calloc_w(size_t nmem, size_t size, const char *func)
50 : {
51 : void *ret;
52 360435 : if(!(ret=calloc(nmem, size))) log_oom_w(__func__, func);
53 : #ifdef UTEST
54 360435 : else alloc_count++;
55 : #endif
56 360435 : return ret;
57 : }
58 :
59 1840515 : void free_v(void **ptr)
60 : {
61 3681030 : if(!ptr || !*ptr) return;
62 904752 : free(*ptr);
63 904752 : *ptr=NULL;
64 : #ifdef UTEST
65 904752 : free_count++;
66 : #endif
67 : }
68 :
69 1409803 : void free_w(char **str)
70 : {
71 1409803 : free_v((void **)str);
72 1409803 : }
|