1 /* Copyright (c) 2002-2018 Dovecot authors, see the included COPYING file */
2
3 #include "lib.h"
4
5 pool_t default_pool = &static_system_pool;
6
i_malloc(size_t size)7 void *i_malloc(size_t size)
8 {
9 return p_malloc(default_pool, size);
10 }
11
i_realloc(void * mem,size_t old_size,size_t new_size)12 void *i_realloc(void *mem, size_t old_size, size_t new_size)
13 {
14 return p_realloc(default_pool, mem, old_size, new_size);
15 }
16
i_strdup(const char * str)17 char *i_strdup(const char *str)
18 {
19 return p_strdup(default_pool, str);
20 }
21
i_memdup(const void * data,size_t size)22 void *i_memdup(const void *data, size_t size)
23 {
24 return p_memdup(default_pool, data, size);
25 }
26
i_strdup_empty(const char * str)27 char *i_strdup_empty(const char *str)
28 {
29 return p_strdup_empty(default_pool, str);
30 }
31
i_strdup_until(const void * str,const void * end)32 char *i_strdup_until(const void *str, const void *end)
33 {
34 return p_strdup_until(default_pool, str, end);
35 }
36
i_strndup(const void * str,size_t max_chars)37 char *i_strndup(const void *str, size_t max_chars)
38 {
39 i_assert(str != NULL);
40 return p_strndup(default_pool, str, max_chars);
41 }
42
i_strdup_printf(const char * format,...)43 char *i_strdup_printf(const char *format, ...)
44 {
45 va_list args;
46 char *ret;
47
48 va_start(args, format);
49 ret = p_strdup_vprintf(default_pool, format, args);
50 va_end(args);
51 return ret;
52 }
53
i_strdup_vprintf(const char * format,va_list args)54 char *i_strdup_vprintf(const char *format, va_list args)
55 {
56 return p_strdup_vprintf(default_pool, format, args);
57 }
58
i_strconcat(const char * str1,...)59 char *i_strconcat(const char *str1, ...)
60 {
61 va_list args;
62 char *ret;
63 size_t len;
64
65 i_assert(str1 != NULL);
66
67 va_start(args, str1);
68
69 T_BEGIN {
70 const char *temp = vstrconcat(str1, args, &len);
71 t_buffer_alloc(len);
72 ret = p_malloc(default_pool, len);
73 memcpy(ret, temp, len);
74 } T_END;
75
76 va_end(args);
77 return ret;
78 }
79