Fix bug reported by Vincent Torri and add a test to trigger it.
authorcedric <cedric>
Wed, 17 Sep 2008 08:33:35 +0000 (08:33 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 17 Sep 2008 08:33:35 +0000 (08:33 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eina@36041 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/eina_counter.c
src/tests/eina_test_counter.c

index 7d90461..ae7c914 100644 (file)
@@ -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;
index aa6739a..b4c7261 100644 (file)
@@ -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);
 }