diff --git a/legacy/eina/src/lib/eina_counter.c b/legacy/eina/src/lib/eina_counter.c index 7d90461077..ae7c914427 100644 --- a/legacy/eina/src/lib/eina_counter.c +++ b/legacy/eina/src/lib/eina_counter.c @@ -198,7 +198,7 @@ eina_counter_stop(Eina_Counter *counter, int specimen) clk = (Eina_Clock *) counter->clocks; - if (clk->valid == EINA_TRUE) return ; + if (!clk || clk->valid == EINA_TRUE) return ; clk->end = tp; clk->specimen = specimen; diff --git a/legacy/eina/src/tests/eina_test_counter.c b/legacy/eina/src/tests/eina_test_counter.c index aa6739ae1d..b4c726154b 100644 --- a/legacy/eina/src/tests/eina_test_counter.c +++ b/legacy/eina/src/tests/eina_test_counter.c @@ -66,9 +66,27 @@ START_TEST(eina_counter_simple) } END_TEST +START_TEST(eina_counter_break) +{ + Eina_Counter *cnt; + + eina_counter_init(); + + cnt = eina_counter_add("eina_test"); + fail_if(!cnt); + + eina_counter_stop(cnt, 10); + + eina_counter_delete(cnt); + + eina_counter_shutdown(); +} +END_TEST + void eina_test_counter(TCase *tc) { tcase_add_test(tc, eina_counter_init_shutdown); tcase_add_test(tc, eina_counter_simple); + tcase_add_test(tc, eina_counter_break); }