diff src/animate.c @ 128:07dc9ec71221

Fix the problem that animate.c can not pass testcases
author Thinker K.F. Li <thinker@branda.to>
date Tue, 16 Sep 2008 16:46:30 +0800
parents ad5ab8e61c2b
children ba581d8a4b9b
line wrap: on
line diff
--- a/src/animate.c	Tue Sep 16 16:06:04 2008 +0800
+++ b/src/animate.c	Tue Sep 16 16:46:30 2008 +0800
@@ -111,7 +111,9 @@
  */
 mb_progm_t *mb_progm_new(int max_words, redraw_man_t *rdman) {
     mb_progm_t *progm;
+#ifndef UNITTEST
     ob_factory_t *factory;
+#endif /* UNITTEST */
     int i;
 
     progm = (mb_progm_t *)malloc(sizeof(mb_progm_t) +
@@ -121,8 +123,10 @@
 
     progm->rdman = rdman;
 
+#ifndef UNITTEST
     factory = rdman_get_ob_factory(rdman);
     progm->complete = subject_new(factory, progm, OBJT_PROGM);
+#endif /* UNITTEST */
 
     progm->n_words = 0;
     progm->max_words = max_words;
@@ -135,7 +139,9 @@
     int n_words;
     mb_word_t *word;
     mb_action_t *cur_act;
+#ifndef UNITTEST
     ob_factory_t *factory;
+#endif /* UNITTEST */
     int i;
 
     n_words = progm->n_words;
@@ -149,8 +155,10 @@
 	}
     }
 
+#ifndef UNITTEST
     factory = rdman_get_ob_factory(progm->rdman);
     subject_free(factory, progm->complete);
+#endif /* UNITTEST */
 
     free(progm);
 }
@@ -226,8 +234,10 @@
 			  const mb_timeval_t *now,
 			  void *arg) {
     mb_progm_t *progm = (mb_progm_t *)arg;
+#ifndef UNITTEST
     ob_factory_t *factory;
     mb_progm_complete_t comp_evt;
+#endif /* UNITTEST */
     mb_timeval_t next_tmo;
     mb_word_t *word;
     mb_timer_t *timer;
@@ -278,11 +288,13 @@
 	timer = mb_tman_timeout(progm->tman, &next_tmo,
 				mb_progm_step, progm);	
     } else {
+#ifndef UNITTEST
 	factory = rdman_get_ob_factory(progm->rdman);
 	comp_evt.event.type = EVT_PROGM_COMPLETE;
 	comp_evt.event.tgt = comp_evt.event.cur_tgt = progm->complete;
 	comp_evt.progm = progm;
 	subject_notify(factory, progm->complete, &comp_evt.event);
+#endif /* UNITTEST */
     }
 }