From 282cc129d738a75bbdb6e2406e107558328bba2a Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 7 Sep 2016 19:02:03 +0200 Subject: [PATCH 1/2] spellbook_clear crash fix --- src/kernel/equipment.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/kernel/equipment.c b/src/kernel/equipment.c index f5bd2fd29..7d69f26d8 100644 --- a/src/kernel/equipment.c +++ b/src/kernel/equipment.c @@ -230,7 +230,9 @@ void free_equipment(void) { equipment *eq = *eqp; *eqp = eq->next; free(eq->name); - spellbook_clear(eq->spellbook); + if (eq->spellbook) { + spellbook_clear(eq->spellbook); + } // TODO: items, subsets free(eq); } From c8283060f92bd82f9f427c77236923261966c0ce Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 7 Sep 2016 19:04:42 +0200 Subject: [PATCH 2/2] test_setup/cleanup for equipment.test --- src/kernel/equipment.test.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kernel/equipment.test.c b/src/kernel/equipment.test.c index f0543ad8c..490a44a78 100644 --- a/src/kernel/equipment.test.c +++ b/src/kernel/equipment.test.c @@ -20,7 +20,7 @@ void test_equipment(CuTest * tc) spell *sp; sc_mage * mage; - test_cleanup(); + test_setup(); test_create_race("human"); enable_skill(SK_MAGIC, true); it_horses = test_create_itemtype("horse"); @@ -36,7 +36,7 @@ void test_equipment(CuTest * tc) equipment_setskill(eq, SK_MAGIC, "5"); equipment_addspell(eq, sp, 1); - u = test_create_unit(test_create_faction(0), 0); + u = test_create_unit(test_create_faction(0), test_create_region(0, 0, 0)); equip_unit_mask(u, eq, EQUIP_ALL); CuAssertIntEquals(tc, 1, i_get(u->items, it_horses)); CuAssertIntEquals(tc, 5, get_level(u, SK_MAGIC)); @@ -45,6 +45,7 @@ void test_equipment(CuTest * tc) CuAssertPtrNotNull(tc, mage); CuAssertPtrNotNull(tc, mage->spellbook); CuAssertTrue(tc, u_hasspell(u, sp)); + test_cleanup(); } CuSuite *get_equipment_suite(void)