comparison src/redraw_man.c @ 866:9a7ac4487849

Allocate sh_rect_t objects from an elmpool
author Thinker K.F. Li <thinker@codemud.net>
date Thu, 23 Sep 2010 10:14:05 +0800
parents 48df0f97f09e
children 4f8d53be9488
comparison
equal deleted inserted replaced
865:48df0f97f09e 866:9a7ac4487849
638 } 638 }
639 639
640 int redraw_man_init(redraw_man_t *rdman, mbe_t *cr, mbe_t *backend) { 640 int redraw_man_init(redraw_man_t *rdman, mbe_t *cr, mbe_t *backend) {
641 extern void redraw_man_destroy(redraw_man_t *rdman); 641 extern void redraw_man_destroy(redraw_man_t *rdman);
642 extern int _sh_path_size; 642 extern int _sh_path_size;
643 extern int _sh_rect_size;
643 extern int _paint_color_size; 644 extern int _paint_color_size;
644 observer_t *addrm_ob; 645 observer_t *addrm_ob;
645 extern void addrm_monitor_hdlr(event_t *evt, void *arg); 646 extern void addrm_monitor_hdlr(event_t *evt, void *arg);
646 647
647 memset(rdman, 0, sizeof(redraw_man_t)); 648 memset(rdman, 0, sizeof(redraw_man_t));
653 654
654 rdman->geo_pool = elmpool_new(sizeof(geo_t), 128); 655 rdman->geo_pool = elmpool_new(sizeof(geo_t), 128);
655 rdman->coord_pool = elmpool_new(sizeof(coord_t), 16); 656 rdman->coord_pool = elmpool_new(sizeof(coord_t), 16);
656 rdman->shnode_pool = elmpool_new(sizeof(shnode_t), 16); 657 rdman->shnode_pool = elmpool_new(sizeof(shnode_t), 16);
657 rdman->sh_path_pool = elmpool_new(_sh_path_size, 16); 658 rdman->sh_path_pool = elmpool_new(_sh_path_size, 16);
659 rdman->sh_rect_pool = elmpool_new(_sh_rect_size, 16);
658 rdman->observer_pool = elmpool_new(sizeof(observer_t), 32); 660 rdman->observer_pool = elmpool_new(sizeof(observer_t), 32);
659 rdman->subject_pool = elmpool_new(sizeof(subject_t), 32); 661 rdman->subject_pool = elmpool_new(sizeof(subject_t), 32);
660 rdman->paint_color_pool = elmpool_new(_paint_color_size, 64); 662 rdman->paint_color_pool = elmpool_new(_paint_color_size, 64);
661 rdman->pent_pool = elmpool_new(sizeof(mb_prop_entry_t), 128); 663 rdman->pent_pool = elmpool_new(sizeof(mb_prop_entry_t), 128);
662 rdman->coord_canvas_pool = elmpool_new(sizeof(coord_canvas_info_t), 16); 664 rdman->coord_canvas_pool = elmpool_new(sizeof(coord_canvas_info_t), 16);
722 elmpool_free(rdman->coord_pool); 724 elmpool_free(rdman->coord_pool);
723 if(rdman->shnode_pool) 725 if(rdman->shnode_pool)
724 elmpool_free(rdman->shnode_pool); 726 elmpool_free(rdman->shnode_pool);
725 if(rdman->sh_path_pool) 727 if(rdman->sh_path_pool)
726 elmpool_free(rdman->sh_path_pool); 728 elmpool_free(rdman->sh_path_pool);
729 if(rdman->sh_rect_pool)
730 elmpool_free(rdman->sh_rect_pool);
727 if(rdman->observer_pool) 731 if(rdman->observer_pool)
728 elmpool_free(rdman->observer_pool); 732 elmpool_free(rdman->observer_pool);
729 if(rdman->subject_pool) 733 if(rdman->subject_pool)
730 elmpool_free(rdman->subject_pool); 734 elmpool_free(rdman->subject_pool);
731 if(rdman->paint_color_pool) 735 if(rdman->paint_color_pool)
782 786
783 elmpool_free(rdman->coord_pool); 787 elmpool_free(rdman->coord_pool);
784 elmpool_free(rdman->geo_pool); 788 elmpool_free(rdman->geo_pool);
785 elmpool_free(rdman->shnode_pool); 789 elmpool_free(rdman->shnode_pool);
786 elmpool_free(rdman->sh_path_pool); 790 elmpool_free(rdman->sh_path_pool);
791 elmpool_free(rdman->sh_rect_pool);
787 elmpool_free(rdman->observer_pool); 792 elmpool_free(rdman->observer_pool);
788 elmpool_free(rdman->subject_pool); 793 elmpool_free(rdman->subject_pool);
789 elmpool_free(rdman->paint_color_pool); 794 elmpool_free(rdman->paint_color_pool);
790 elmpool_free(rdman->pent_pool); 795 elmpool_free(rdman->pent_pool);
791 elmpool_free(rdman->coord_canvas_pool); 796 elmpool_free(rdman->coord_canvas_pool);