# HG changeset patch # User Thinker K.F. Li # Date 1284414288 -28800 # Node ID e83956ba22d73c22f01f88ddc1531ea79aed193b # Parent 93c54322d4d87df0ed5a3bb53b2bc1d1a725022c Make sure drawing on right cached canvas diff -r 93c54322d4d8 -r e83956ba22d7 src/redraw_man.c --- a/src/redraw_man.c Tue Sep 14 05:44:48 2010 +0800 +++ b/src/redraw_man.c Tue Sep 14 05:44:48 2010 +0800 @@ -528,13 +528,15 @@ return cr; #else - return NULL; + return (mbe_t *)malloc(16); #endif } static void canvas_free(mbe_t *canvas) { #ifndef UNITTEST mbe_destroy(canvas); +#else + free(canvas); #endif } @@ -2613,6 +2615,7 @@ co_aix w, h; int trans_cnt; int draw_cnt; + redraw_man_t *last_draw; }; void sh_dummy_free(shape_t *sh) { @@ -2671,6 +2674,7 @@ dummy = (sh_dummy_t *)shape; dummy->draw_cnt++; + dummy->last_draw = cr; } static void dummy_paint_prepare(paint_t *paint, mbe_t *cr) { @@ -2884,6 +2888,7 @@ rdman_redraw_all(rdman); CU_ASSERT(sh->draw_cnt == 1); + CU_ASSERT(sh->last_draw == _coord_get_canvas(coord2)); rdman_paint_free(rdman, paint); redraw_man_destroy(rdman);