forked from github/server
add an assert_alloc macro for allocations that cannot fail.
This commit is contained in:
parent
1f3413a9b4
commit
fd273848ae
|
@ -56,6 +56,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
#include <attributes/moved.h>
|
||||
|
||||
/* util includes */
|
||||
#include <util/assert.h>
|
||||
#include <util/attrib.h>
|
||||
#include <util/base36.h>
|
||||
#include <util/bsdstring.h>
|
||||
|
@ -67,7 +68,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
#include <util/rng.h>
|
||||
|
||||
/* libc includes */
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
#include <math.h>
|
||||
|
@ -218,7 +218,7 @@ static void message_faction(battle * b, faction * f, struct message *m)
|
|||
assert(f);
|
||||
if (f->battles == NULL || f->battles->r != r) {
|
||||
struct bmsg *bm = (struct bmsg *)calloc(1, sizeof(struct bmsg));
|
||||
assert(bm || !"out of memory");
|
||||
assert_alloc(bm);
|
||||
bm->next = f->battles;
|
||||
f->battles = bm;
|
||||
bm->r = r;
|
||||
|
|
|
@ -57,6 +57,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
#include "skill.h"
|
||||
|
||||
/* util includes */
|
||||
#include <util/assert.h>
|
||||
#include <util/attrib.h>
|
||||
#include <util/base36.h>
|
||||
#include <util/bsdstring.h>
|
||||
|
@ -77,7 +78,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
#include <attributes/targetregion.h>
|
||||
|
||||
/* libc includes */
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -127,7 +127,7 @@ get_followers(unit * target, region * r, const region_list * route_end,
|
|||
const attrib *a = a_find(uf->attribs, &at_follow);
|
||||
if (a && a->data.v == target) {
|
||||
follower *fnew = (follower *)malloc(sizeof(follower));
|
||||
assert(fnew || !"out of memory");
|
||||
assert_alloc(fnew);
|
||||
fnew->uf = uf;
|
||||
fnew->ut = target;
|
||||
fnew->route_end = route_end;
|
||||
|
@ -1545,7 +1545,7 @@ static arg_regions *var_copy_regions(const region_list * begin, int size)
|
|||
assert(size > 0);
|
||||
arg_regions *dst =
|
||||
(arg_regions *)malloc(sizeof(arg_regions) + sizeof(region *) * (size_t)size);
|
||||
assert(dst || !"out of memory");
|
||||
assert_alloc(dst);
|
||||
dst->nregions = size;
|
||||
dst->regions = (region **)(dst + 1);
|
||||
for (rsrc = begin; i != size; rsrc = rsrc->next) {
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
#include <races/races.h>
|
||||
|
||||
/* util includes */
|
||||
#include <util/assert.h>
|
||||
#include <util/attrib.h>
|
||||
#include <util/base36.h>
|
||||
#include <util/event.h>
|
||||
|
@ -80,7 +81,6 @@
|
|||
#include <storage.h>
|
||||
|
||||
/* libc includes */
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
@ -1263,7 +1263,7 @@ add_ironweapon(const struct item_type *type, const struct item_type *rusty,
|
|||
float chance)
|
||||
{
|
||||
iron_weapon *iweapon = malloc(sizeof(iron_weapon));
|
||||
assert(iweapon || !"out of memory");
|
||||
assert_alloc(iweapon);
|
||||
iweapon->type = type;
|
||||
iweapon->rusty = rusty;
|
||||
iweapon->chance = chance;
|
||||
|
|
|
@ -27,10 +27,10 @@
|
|||
#include <util/message.h>
|
||||
#include <util/log.h>
|
||||
#include <util/rand.h>
|
||||
#include <util/assert.h>
|
||||
|
||||
#include <CuTest.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -191,7 +191,7 @@ ship_type * test_create_shiptype(const char * name)
|
|||
stype->damage = 1;
|
||||
if (!stype->construction) {
|
||||
stype->construction = calloc(1, sizeof(construction));
|
||||
assert(stype->construction || !"out of memory");
|
||||
assert_alloc(stype->construction);
|
||||
stype->construction->maxsize = 5;
|
||||
stype->construction->minskill = 1;
|
||||
stype->construction->reqsize = 1;
|
||||
|
@ -260,7 +260,7 @@ spell * test_create_spell(void)
|
|||
sp = create_spell("testspell", 0);
|
||||
|
||||
sp->components = (spell_component *)calloc(4, sizeof(spell_component));
|
||||
assert(sp->components || !"out of memory");
|
||||
assert_alloc(sp->components);
|
||||
sp->components[0].amount = 1;
|
||||
sp->components[0].type = get_resourcetype(R_SILVER);
|
||||
sp->components[0].cost = SPC_FIX;
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef UTIL_ASSERT_H
|
||||
#define UTIL_ASSERT_H
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#define assert_alloc(expr) assert((expr) || !"out of memory")
|
||||
#endif
|
|
@ -18,6 +18,8 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
|
||||
#include <platform.h>
|
||||
|
||||
#include "assert.h"
|
||||
|
||||
/* libc includes */
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
@ -34,7 +36,9 @@ char *set_string(char **s, const char *neu)
|
|||
strcpy(*s, neu);
|
||||
}
|
||||
else {
|
||||
*s = realloc(*s, strlen(neu) + 1);
|
||||
char *rs = realloc(*s, strlen(neu) + 1);
|
||||
assert_alloc(rs);
|
||||
*s = rs;
|
||||
strcpy(*s, neu);
|
||||
}
|
||||
return *s;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
+-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de>
|
||||
| | Enno Rehling <enno@eressea.de>
|
||||
| Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de>
|
||||
|
@ -16,9 +16,9 @@
|
|||
#include "bsdstring.h"
|
||||
#include "critbit.h"
|
||||
#include "log.h"
|
||||
#include "assert.h"
|
||||
|
||||
/* libc includes */
|
||||
#include <assert.h>
|
||||
/* libc includes */
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -48,6 +48,7 @@ void opstack_push(opstack ** stackp, variant data)
|
|||
opstack *stack = *stackp;
|
||||
if (stack == NULL) {
|
||||
stack = (opstack *)malloc(sizeof(opstack));
|
||||
assert_alloc(stack);
|
||||
stack->size = 2;
|
||||
stack->begin = malloc(sizeof(variant) * stack->size);
|
||||
stack->top = stack->begin;
|
||||
|
@ -58,10 +59,7 @@ void opstack_push(opstack ** stackp, variant data)
|
|||
void *tmp;
|
||||
stack->size += stack->size;
|
||||
tmp = realloc(stack->begin, sizeof(variant) * stack->size);
|
||||
if (!tmp) {
|
||||
log_error("realloc out of memory");
|
||||
abort();
|
||||
}
|
||||
assert_alloc(tmp);
|
||||
stack->begin = (variant *)tmp;
|
||||
stack->top = stack->begin + pos;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|||
#include <platform.h>
|
||||
#include "umlaut.h"
|
||||
|
||||
#include "assert.h"
|
||||
#include "log.h"
|
||||
#include "unicode.h"
|
||||
|
||||
|
@ -183,6 +184,7 @@ void addtoken(void ** root, const char *str, variant id)
|
|||
index = lcs % NODEHASHSIZE;
|
||||
#endif
|
||||
ref = (tref *)malloc(sizeof(tref));
|
||||
assert_alloc(ref);
|
||||
ref->ucs = lcs;
|
||||
ref->node = node;
|
||||
ref->nexthash = tk->next[index];
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
/* util includes */
|
||||
#include "log.h"
|
||||
#include "assert.h"
|
||||
|
||||
#ifdef USE_LIBXML2
|
||||
#include <libxml/catalog.h>
|
||||
|
@ -21,7 +22,6 @@
|
|||
#endif
|
||||
|
||||
/* libc includes */
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -93,6 +93,7 @@ void xml_register_callback(xml_callback callback)
|
|||
{
|
||||
xml_reader *reader = (xml_reader *)malloc(sizeof(xml_reader));
|
||||
xml_reader **insert = &xmlReaders;
|
||||
assert_alloc(reader);
|
||||
reader->callback = callback;
|
||||
reader->next = NULL;
|
||||
|
||||
|
|
Loading…
Reference in New Issue