help the VS heap profiler understand the code.

reorder calloc arguments.
rename ursprung -> origin.
This commit is contained in:
Enno Rehling 2018-10-22 21:51:11 +02:00
parent 835d900f73
commit 35ed981cd5
17 changed files with 59 additions and 70 deletions

View file

@ -66,7 +66,7 @@ void new_potiontype(item_type * itype, int level)
{ {
potion_type *ptype; potion_type *ptype;
ptype = (potion_type *)calloc(sizeof(potion_type), 1); ptype = (potion_type *)calloc(1, sizeof(potion_type));
itype->flags |= ITF_POTION; itype->flags |= ITF_POTION;
ptype->itype = itype; ptype->itype = itype;
ptype->level = level; ptype->level = level;
@ -181,7 +181,7 @@ int use_potion(unit * u, const item_type * itype, int amount, struct order *ord)
static void a_initeffect(variant *var) static void a_initeffect(variant *var)
{ {
var->v = calloc(sizeof(effect_data), 1); var->v = calloc(1, sizeof(effect_data));
} }
static void static void

View file

@ -3226,7 +3226,7 @@ fighter *make_fighter(battle * b, unit * u, side * s1, bool attack)
assert(w != WMAX); assert(w != WMAX);
} }
assert(w >= 0); assert(w >= 0);
fig->weapons = (weapon *)calloc(sizeof(weapon), (size_t)(w + 1)); fig->weapons = (weapon *)calloc((size_t)(w + 1), sizeof(weapon));
memcpy(fig->weapons, weapons, (size_t)w * sizeof(weapon)); memcpy(fig->weapons, weapons, (size_t)w * sizeof(weapon));
for (i = 0; i != w; ++i) { for (i = 0; i != w; ++i) {
@ -3452,7 +3452,7 @@ battle *make_battle(region * r)
break; break;
} }
if (!bf) { if (!bf) {
bf = (bfaction *)calloc(sizeof(bfaction), 1); bf = (bfaction *)calloc(1, sizeof(bfaction));
++b->nfactions; ++b->nfactions;
bf->faction = u->faction; bf->faction = u->faction;
bf->next = b->factions; bf->next = b->factions;

View file

@ -382,20 +382,8 @@ static int tolua_faction_set_origin(lua_State * L)
static int tolua_faction_get_origin(lua_State * L) static int tolua_faction_get_origin(lua_State * L)
{ {
faction *self = (faction *)tolua_tousertype(L, 1, 0); faction *self = (faction *)tolua_tousertype(L, 1, 0);
int x = 0, y = 0;
ursprung *origin = self->ursprung; faction_getorigin(self, 0, &x, &y);
int x, y;
while (origin != NULL && origin->id != 0) {
origin = origin->next;
}
if (origin) {
x = origin->x;
y = origin->y;
}
else {
x = 0;
y = 0;
}
lua_pushinteger(L, x); lua_pushinteger(L, x);
lua_pushinteger(L, y); lua_pushinteger(L, y);

View file

@ -1361,7 +1361,7 @@ static void update_view(view * vi)
state *state_open(void) state *state_open(void)
{ {
state *st = calloc(sizeof(state), 1); state *st = (state *)calloc(1, sizeof(state));
st->display.pl = get_homeplane(); st->display.pl = get_homeplane();
st->cursor.pl = get_homeplane(); st->cursor.pl = get_homeplane();
st->cursor.x = 0; st->cursor.x = 0;

View file

@ -56,10 +56,8 @@ ally * ally_add(ally **al_p, struct faction *f) {
if (f && al->faction == f) return al; if (f && al->faction == f) return al;
al_p = &al->next; al_p = &al->next;
} }
al = (ally *)malloc(sizeof(ally)); al = (ally *)calloc(1, sizeof(ally));
al->faction = f; al->faction = f;
al->status = 0;
al->next = 0;
*al_p = al; *al_p = al;
return al; return al;
} }

View file

@ -135,7 +135,7 @@ building_type *bt_get_or_create(const char *name)
if (name != NULL) { if (name != NULL) {
building_type *btype = bt_find_i(name); building_type *btype = bt_find_i(name);
if (btype == NULL) { if (btype == NULL) {
btype = calloc(sizeof(building_type), 1); btype = (building_type *)calloc(1, sizeof(building_type));
btype->_name = str_strdup(name); btype->_name = str_strdup(name);
btype->flags = BTF_DEFAULT; btype->flags = BTF_DEFAULT;
btype->auraregen = 1.0; btype->auraregen = 1.0;

View file

@ -119,7 +119,7 @@ static void free_faction(faction * f)
i_freeall(&f->items); i_freeall(&f->items);
freelist(f->ursprung); freelist(f->origin);
} }
#define FMAXHASH 2039 #define FMAXHASH 2039
@ -727,10 +727,10 @@ bool faction_alive(const faction *f) {
void faction_getorigin(const faction * f, int id, int *x, int *y) void faction_getorigin(const faction * f, int id, int *x, int *y)
{ {
ursprung *ur; origin *ur;
assert(f && x && y); assert(f && x && y);
for (ur = f->ursprung; ur; ur = ur->next) { for (ur = f->origin; ur; ur = ur->next) {
if (ur->id == id) { if (ur->id == id) {
*x = ur->x; *x = ur->x;
*y = ur->y; *y = ur->y;
@ -739,24 +739,27 @@ void faction_getorigin(const faction * f, int id, int *x, int *y)
} }
} }
void faction_setorigin(faction * f, int id, int x, int y) static origin *new_origin(int id, int x, int y) {
{ origin *ur = (origin *)calloc(1, sizeof(origin));
ursprung *ur;
assert(f != NULL);
for (ur = f->ursprung; ur; ur = ur->next) {
if (ur->id == id) {
ur->x = ur->x + x;
ur->y = ur->y + y;
return;
}
}
ur = calloc(1, sizeof(ursprung));
ur->id = id; ur->id = id;
ur->x = x; ur->x = x;
ur->y = y; ur->y = y;
return ur;
}
addlist(&f->ursprung, ur); void faction_setorigin(faction * f, int id, int x, int y)
{
origin **urp;
assert(f != NULL);
for (urp = &f->origin; *urp; urp = &(*urp)->next) {
origin *ur = *urp;
if (ur->id == id) {
ur->x += x;
ur->y += y;
return;
}
}
*urp = new_origin(id, x, y);
} }

View file

@ -54,6 +54,12 @@ extern "C" {
#define FFL_NPC (1<<25) /* eine Partei mit Monstern */ #define FFL_NPC (1<<25) /* eine Partei mit Monstern */
#define FFL_SAVEMASK (FFL_DEFENDER|FFL_NPC|FFL_NOIDLEOUT|FFL_CURSED) #define FFL_SAVEMASK (FFL_DEFENDER|FFL_NPC|FFL_NOIDLEOUT|FFL_CURSED)
typedef struct origin {
struct origin *next;
int id;
int x, y;
} origin;
typedef struct faction { typedef struct faction {
struct faction *next; struct faction *next;
struct faction *nexthash; struct faction *nexthash;
@ -72,7 +78,7 @@ extern "C" {
const struct locale *locale; const struct locale *locale;
int lastorders; int lastorders;
int age; int age;
struct ursprung *ursprung; struct origin *origin;
const struct race *race; const struct race *race;
magic_t magiegebiet; magic_t magiegebiet;
int newbies; int newbies;

View file

@ -119,7 +119,7 @@ static void test_addfaction(CuTest *tc) {
CuAssertPtrEquals(tc, NULL, (void *)f->next); CuAssertPtrEquals(tc, NULL, (void *)f->next);
CuAssertPtrEquals(tc, NULL, (void *)f->banner); CuAssertPtrEquals(tc, NULL, (void *)f->banner);
CuAssertPtrEquals(tc, NULL, (void *)f->spellbook); CuAssertPtrEquals(tc, NULL, (void *)f->spellbook);
CuAssertPtrEquals(tc, NULL, (void *)f->ursprung); CuAssertPtrEquals(tc, NULL, (void *)f->origin);
CuAssertPtrEquals(tc, (void *)factions, (void *)f); CuAssertPtrEquals(tc, (void *)factions, (void *)f);
CuAssertStrEquals(tc, "test@eressea.de", f->email); CuAssertStrEquals(tc, "test@eressea.de", f->email);
CuAssertTrue(tc, checkpasswd(f, "hurrdurr")); CuAssertTrue(tc, checkpasswd(f, "hurrdurr"));
@ -162,11 +162,11 @@ static void test_set_origin(CuTest *tc) {
test_setup(); test_setup();
pl = create_new_plane(0, "", 0, 19, 0, 19, 0); pl = create_new_plane(0, "", 0, 19, 0, 19, 0);
f = test_create_faction(NULL); f = test_create_faction(NULL);
CuAssertPtrEquals(tc, NULL, f->ursprung); CuAssertPtrEquals(tc, NULL, f->origin);
faction_setorigin(f, 0, 1, 1); faction_setorigin(f, 0, 1, 1);
CuAssertIntEquals(tc, 0, f->ursprung->id); CuAssertIntEquals(tc, 0, f->origin->id);
CuAssertIntEquals(tc, 1, f->ursprung->x); CuAssertIntEquals(tc, 1, f->origin->x);
CuAssertIntEquals(tc, 1, f->ursprung->y); CuAssertIntEquals(tc, 1, f->origin->y);
faction_getorigin(f, 0, &x, &y); faction_getorigin(f, 0, &x, &y);
CuAssertIntEquals(tc, 1, x); CuAssertIntEquals(tc, 1, x);
CuAssertIntEquals(tc, 1, y); CuAssertIntEquals(tc, 1, y);
@ -190,7 +190,7 @@ static void test_set_origin_bug(CuTest *tc) {
faction_setorigin(f, 0, -10, 3); faction_setorigin(f, 0, -10, 3);
faction_setorigin(f, 0, -13, -4); faction_setorigin(f, 0, -13, -4);
adjust_coordinates(f, &x, &y, pl); adjust_coordinates(f, &x, &y, pl);
CuAssertIntEquals(tc, 0, f->ursprung->id); CuAssertIntEquals(tc, 0, f->origin->id);
CuAssertIntEquals(tc, -9, x); CuAssertIntEquals(tc, -9, x);
CuAssertIntEquals(tc, 2, y); CuAssertIntEquals(tc, 2, y);
test_teardown(); test_teardown();

View file

@ -122,7 +122,7 @@ int getplaneid(const region * r)
static int static int
ursprung_x(const faction * f, const plane * pl, const region * rdefault) ursprung_x(const faction * f, const plane * pl, const region * rdefault)
{ {
ursprung *ur; origin *ur;
int id = 0; int id = 0;
if (!f) if (!f)
@ -131,7 +131,7 @@ ursprung_x(const faction * f, const plane * pl, const region * rdefault)
if (pl) if (pl)
id = pl->id; id = pl->id;
for (ur = f->ursprung; ur; ur = ur->next) { for (ur = f->origin; ur; ur = ur->next) {
if (ur->id == id) if (ur->id == id)
return ur->x; return ur->x;
} }
@ -145,7 +145,7 @@ ursprung_x(const faction * f, const plane * pl, const region * rdefault)
static int static int
ursprung_y(const faction * f, const plane * pl, const region * rdefault) ursprung_y(const faction * f, const plane * pl, const region * rdefault)
{ {
ursprung *ur; origin *ur;
int id = 0; int id = 0;
if (!f) if (!f)
@ -154,7 +154,7 @@ ursprung_y(const faction * f, const plane * pl, const region * rdefault)
if (pl) if (pl)
id = pl->id; id = pl->id;
for (ur = f->ursprung; ur; ur = ur->next) { for (ur = f->origin; ur; ur = ur->next) {
if (ur->id == id) if (ur->id == id)
return ur->y; return ur->y;
} }

View file

@ -774,7 +774,7 @@ region *new_region(int x, int y, struct plane *pl, int uid)
log_error("duplicate region contains units\n"); log_error("duplicate region contains units\n");
return r; return r;
} }
r = calloc(1, sizeof(region)); r = (region *)calloc(sizeof(region), 1);
assert_alloc(r); assert_alloc(r);
r->x = x; r->x = x;
r->y = y; r->y = y;

View file

@ -357,14 +357,14 @@ static void read_skills(gamedata *data, unit *u)
size_t sz = u->skill_size * sizeof(skill); size_t sz = u->skill_size * sizeof(skill);
qsort(skills, u->skill_size, sizeof(skill), skill_cmp); qsort(skills, u->skill_size, sizeof(skill), skill_cmp);
u->skills = malloc(sz); u->skills = (skill *)malloc(sz);
memcpy(u->skills, skills, sz); memcpy(u->skills, skills, sz);
} }
} }
else { else {
int i; int i;
READ_INT(data->store, &u->skill_size); READ_INT(data->store, &u->skill_size);
u->skills = malloc(sizeof(skill)*u->skill_size); u->skills = (skill *)malloc(sizeof(skill)*u->skill_size);
for (i = 0; i != u->skill_size; ++i) { for (i = 0; i != u->skill_size; ++i) {
skill *sv = u->skills + i; skill *sv = u->skills + i;
read_skill(data, sv); read_skill(data, sv);
@ -420,7 +420,7 @@ unit *read_unit(gamedata *data)
u_setfaction(u, NULL); u_setfaction(u, NULL);
} }
else { else {
u = calloc(sizeof(unit), 1); u = (unit *)calloc(1, sizeof(unit));
assert_alloc(u); assert_alloc(u);
u->no = n; u->no = n;
uhash(u); uhash(u);
@ -1095,7 +1095,7 @@ faction *read_faction(gamedata * data)
void write_faction(gamedata *data, const faction * f) void write_faction(gamedata *data, const faction * f)
{ {
ally *sf; ally *sf;
ursprung *ur; origin *ur;
assert(f->_alive); assert(f->_alive);
assert(f->no > 0 && f->no <= MAX_UNIT_NR); assert(f->no > 0 && f->no <= MAX_UNIT_NR);
@ -1134,8 +1134,8 @@ void write_faction(gamedata *data, const faction * f)
WRITE_SECTION(data->store); WRITE_SECTION(data->store);
WRITE_TOK(data->store, "end"); WRITE_TOK(data->store, "end");
WRITE_SECTION(data->store); WRITE_SECTION(data->store);
WRITE_INT(data->store, listlen(f->ursprung)); WRITE_INT(data->store, listlen(f->origin));
for (ur = f->ursprung; ur; ur = ur->next) { for (ur = f->origin; ur; ur = ur->next) {
WRITE_INT(data->store, ur->id); WRITE_INT(data->store, ur->id);
WRITE_INT(data->store, ur->x); WRITE_INT(data->store, ur->x);
WRITE_INT(data->store, ur->y); WRITE_INT(data->store, ur->y);

View file

@ -55,12 +55,6 @@ struct terrain_type;
struct unit; struct unit;
struct weapon_type; struct weapon_type;
typedef struct ursprung {
struct ursprung *next;
int id;
int x, y;
} ursprung;
/* seen_mode: visibility in the report */ /* seen_mode: visibility in the report */
typedef enum { typedef enum {
seen_none, seen_none,

View file

@ -28,7 +28,7 @@ void
insert_selection(list_selection ** p_sel, list_selection * prev, insert_selection(list_selection ** p_sel, list_selection * prev,
const char *str, void *payload) const char *str, void *payload)
{ {
list_selection *sel = calloc(sizeof(list_selection), 1); list_selection *sel = (list_selection *)calloc(1, sizeof(list_selection));
sel->str = str_strdup(str); sel->str = str_strdup(str);
sel->data = payload; sel->data = payload;
if (*p_sel) { if (*p_sel) {
@ -56,7 +56,7 @@ const char *str, void *payload)
list_selection **push_selection(list_selection ** p_sel, char *str, list_selection **push_selection(list_selection ** p_sel, char *str,
void *payload) void *payload)
{ {
list_selection *sel = calloc(sizeof(list_selection), 1); list_selection *sel = (list_selection *)calloc(1, sizeof(list_selection));
list_selection *prev = NULL; list_selection *prev = NULL;
sel->str = str; sel->str = str;
sel->data = payload; sel->data = payload;

View file

@ -133,7 +133,7 @@ newfaction *read_newfactions(const char *filename)
if (nf) { if (nf) {
continue; continue;
} }
nf = calloc(sizeof(newfaction), 1); nf = (newfaction *)calloc(1, sizeof(newfaction));
if (check_email(email) == 0) { if (check_email(email) == 0) {
nf->email = str_strdup(email); nf->email = str_strdup(email);
} else { } else {

View file

@ -79,7 +79,7 @@ const curse_type ct_firewall = {
static void wall_init(connection * b) static void wall_init(connection * b)
{ {
wall_data *fd = (wall_data *)calloc(sizeof(wall_data), 1); wall_data *fd = (wall_data *)calloc(1, sizeof(wall_data));
fd->countdown = -1; /* infinite */ fd->countdown = -1; /* infinite */
b->data.v = fd; b->data.v = fd;
} }

View file

@ -117,7 +117,7 @@ char * transliterate(char * out, size_t size, const char * in)
} }
tnode * mknode(void) { tnode * mknode(void) {
tnode * node = calloc(1, sizeof(tnode)); tnode * node = (tnode *)calloc(1, sizeof(tnode));
node->refcount = 1; node->refcount = 1;
return node; return node;
} }