From 5faf642b9c89b5f547f2c16cb268205ec7c5117c Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 9 Sep 2015 13:23:20 +0200 Subject: [PATCH 1/2] use the same DISABLE_TEST macro everywhere. --- src/direction.test.c | 4 +--- src/keyword.test.c | 4 +--- src/skill.test.c | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/direction.test.c b/src/direction.test.c index 54ae5a6bb..fb346cb4e 100644 --- a/src/direction.test.c +++ b/src/direction.test.c @@ -57,15 +57,13 @@ static void test_get_direction_default(CuTest *tc) { CuAssertIntEquals(tc, D_EAST, get_direction("east", lang)); } -#define SUITE_DISABLE_TEST(suite, test) (void)test - CuSuite *get_direction_suite(void) { CuSuite *suite = CuSuiteNew(); SUITE_ADD_TEST(suite, test_init_direction); SUITE_ADD_TEST(suite, test_init_directions); SUITE_ADD_TEST(suite, test_finddirection); - SUITE_DISABLE_TEST(suite, test_get_direction_default); + DISABLE_TEST(suite, test_get_direction_default); return suite; } diff --git a/src/keyword.test.c b/src/keyword.test.c index 9aa297009..e0274d9cf 100644 --- a/src/keyword.test.c +++ b/src/keyword.test.c @@ -93,8 +93,6 @@ static void test_get_shortest_match(CuTest *tc) { test_cleanup(); } -#define SUITE_DISABLE_TEST(suite, test) (void)test - CuSuite *get_keyword_suite(void) { CuSuite *suite = CuSuiteNew(); @@ -103,6 +101,6 @@ CuSuite *get_keyword_suite(void) SUITE_ADD_TEST(suite, test_init_keywords); SUITE_ADD_TEST(suite, test_findkeyword); SUITE_ADD_TEST(suite, test_get_shortest_match); - SUITE_DISABLE_TEST(suite, test_get_keyword_default); + DISABLE_TEST(suite, test_get_keyword_default); return suite; } diff --git a/src/skill.test.c b/src/skill.test.c index f2f0cd73a..451f95d7c 100644 --- a/src/skill.test.c +++ b/src/skill.test.c @@ -43,15 +43,13 @@ static void test_get_skill_default(CuTest *tc) { CuAssertIntEquals(tc, SK_CROSSBOW, get_skill("crossbow", lang)); } -#define SUITE_DISABLE_TEST(suite, test) (void)test - CuSuite *get_skill_suite(void) { CuSuite *suite = CuSuiteNew(); SUITE_ADD_TEST(suite, test_init_skill); SUITE_ADD_TEST(suite, test_init_skills); SUITE_ADD_TEST(suite, test_get_skill); - SUITE_DISABLE_TEST(suite, test_get_skill_default); + DISABLE_TEST(suite, test_get_skill_default); return suite; } From 60111282b3111717a8c0b0a8a47eff8d68188f59 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Wed, 9 Sep 2015 13:29:58 +0200 Subject: [PATCH 2/2] make findunitr be O(1) instead of O(#r->units) --- src/economy.c | 5 +++-- src/kernel/unit.c | 22 +++++++++------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/economy.c b/src/economy.c index e01d7b79b..2219a9cdc 100644 --- a/src/economy.c +++ b/src/economy.c @@ -2640,8 +2640,9 @@ static void steal_cmd(unit * u, struct order *ord, request ** stealorders) return; } id = read_unitid(u->faction, r); - u2 = findunitr(r, id); - + if (id>0) { + u2 = findunitr(r, id); + } if (u2 && u2->region == u->region) { f = u2->faction; } diff --git a/src/kernel/unit.c b/src/kernel/unit.c index 52904287b..b3ff5462e 100644 --- a/src/kernel/unit.c +++ b/src/kernel/unit.c @@ -97,19 +97,6 @@ attrib_type at_creator = { /* Rest ist NULL; temporaeres, nicht alterndes Attribut */ }; -unit *findunitr(const region * r, int n) -{ - unit *u; - - /* findunit regional! */ - - for (u = r->units; u; u = u->next) - if (u->no == n) - return u; - - return 0; -} - unit *findunit(int n) { if (n <= 0) { @@ -118,6 +105,15 @@ unit *findunit(int n) return ufindhash(n); } +unit *findunitr(const region * r, int n) +{ + unit *u; + /* findunit regional! */ + assert(n>0); + u = ufindhash(n); + return (u && u->region==r)?u:0; +} + unit *findunitg(int n, const region * hint) {