]> jfr.im git - irc/rqf/shadowircd.git/blob - libratbox/include/rb_memory.h
SVN Id removal part two
[irc/rqf/shadowircd.git] / libratbox / include / rb_memory.h
1 /*
2 * ircd-ratbox: A slightly useful ircd.
3 * memory.h: A header for the memory functions.
4 *
5 * Copyright (C) 1990 Jarkko Oikarinen and University of Oulu, Co Center
6 * Copyright (C) 1996-2002 Hybrid Development Team
7 * Copyright (C) 2002-2005 ircd-ratbox development team
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
22 * USA
23 *
24 */
25
26 #ifndef RB_LIB_H
27 #error "Do not use rb_memory.h directly"
28 #endif
29
30 #ifndef _RB_MEMORY_H
31 #define _RB_MEMORY_H
32
33 #include <stdlib.h>
34
35
36 void rb_outofmemory(void);
37
38 static inline void *
39 rb_malloc(size_t size)
40 {
41 void *ret = calloc(1, size);
42 if(rb_unlikely(ret == NULL))
43 rb_outofmemory();
44 return (ret);
45 }
46
47 static inline void *
48 rb_realloc(void *x, size_t y)
49 {
50 void *ret = realloc(x, y);
51
52 if(rb_unlikely(ret == NULL))
53 rb_outofmemory();
54 return (ret);
55 }
56
57 static inline char *
58 rb_strndup(const char *x, size_t y)
59 {
60 char *ret = malloc(y);
61 if(rb_unlikely(ret == NULL))
62 rb_outofmemory();
63 rb_strlcpy(ret, x, y);
64 return (ret);
65 }
66
67 static inline char *
68 rb_strdup(const char *x)
69 {
70 char *ret = malloc(strlen(x) + 1);
71 if(rb_unlikely(ret == NULL))
72 rb_outofmemory();
73 strcpy(ret, x);
74 return (ret);
75 }
76
77
78 static inline void
79 rb_free(void *ptr)
80 {
81 if(rb_likely(ptr != NULL))
82 free(ptr);
83 }
84
85 #endif /* _I_MEMORY_H */