summaryrefslogtreecommitdiff
path: root/src/lib/evas/common/evas_draw_main.c
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2016-11-16 16:05:56 -0800
committerCedric BAIL <cedric@osg.samsung.com>2016-11-16 16:05:56 -0800
commit53dd596f437ae53b96d746f0a5cf0963642f76ad (patch)
treedeb3ea334fb4f5e5a2dfc0fb88c81e092f973a07 /src/lib/evas/common/evas_draw_main.c
parent0b6e04d94fc3ff6447b6fbf0fcdbdd8b6958e621 (diff)
evas: reduce usage of __thread directive.
Moved rects caching into draw context to avoid the use of __thread slot. Draw context are defined per thread anyway and should be just fine. This doesn't really change the picture regarding glibc problem when to many __thread are needed, but slightly improve the global picture. Also this patch doesn't affect our performance in expedite benchmark as far as I can tell.
Diffstat (limited to 'src/lib/evas/common/evas_draw_main.c')
-rw-r--r--src/lib/evas/common/evas_draw_main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/evas/common/evas_draw_main.c b/src/lib/evas/common/evas_draw_main.c
index 289d6dfdb4..b87c473bd6 100644
--- a/src/lib/evas/common/evas_draw_main.c
+++ b/src/lib/evas/common/evas_draw_main.c
@@ -122,6 +122,10 @@ evas_common_draw_context_dup(RGBA_Draw_Context *dc)
122 pixman_image_ref(dc2->col.pixman_color_image); 122 pixman_image_ref(dc2->col.pixman_color_image);
123#endif 123#endif
124#endif 124#endif
125
126 dc2->cache.rects = NULL;
127 dc2->cache.used = 0;
128
125 return dc2; 129 return dc2;
126} 130}
127 131
@@ -141,6 +145,7 @@ evas_common_draw_context_free(RGBA_Draw_Context *dc)
141#endif 145#endif
142 146
143 evas_common_draw_context_apply_clean_cutouts(&dc->cutout); 147 evas_common_draw_context_apply_clean_cutouts(&dc->cutout);
148 evas_common_draw_context_cutouts_real_free(dc->cache.rects);
144 free(dc); 149 free(dc);
145} 150}
146 151