On Fri, 26 Nov 2010 08:08:52 -0200 Gustavo Sverzut Barbieri <barbi...@profusion.mobi> said:
because i dont want to turn it on until 1.1. i want to keep the current alloc scheme precisely as-is for now. no no mp created, no counting of items or anything else. the macros reduce to exactly the current code as it stands right now. > On Friday, November 26, 2010, Enlightenment SVN > <no-re...@enlightenment.org> wrote: > > Log: > > evas -> use mempool for many objects and things. but.. disable it for > > now. use old calloc+free thing for 1.0 and enable mpool for 1.1. this > > is just done in advance but disabled for some testing purposes looking > > for some bugs. > > Why do that option inside Evas? Just use MP and force it to use > "passthrough", then it will use malloc/free > > > > > Author: raster > > Date: 2010-11-26 02:01:18 -0800 (Fri, 26 Nov 2010) > > New Revision: 55006 > > > > Modified: > > trunk/evas/src/lib/canvas/evas_callbacks.c > > trunk/evas/src/lib/canvas/evas_object_image.c > > trunk/evas/src/lib/canvas/evas_object_line.c > > trunk/evas/src/lib/canvas/evas_object_main.c > > trunk/evas/src/lib/canvas/evas_object_polygon.c > > trunk/evas/src/lib/canvas/evas_object_rectangle.c > > trunk/evas/src/lib/canvas/evas_object_smart.c > > trunk/evas/src/lib/canvas/evas_object_smart_clipped.c > > trunk/evas/src/lib/canvas/evas_object_text.c > > trunk/evas/src/lib/canvas/evas_object_textblock.c > > trunk/evas/src/lib/include/evas_private.h > > > > Modified: trunk/evas/src/lib/canvas/evas_callbacks.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_callbacks.c 2010-11-26 09:56:45 UTC > > (rev 55005) +++ trunk/evas/src/lib/canvas/evas_callbacks.c 2010-11-26 > > 10:01:18 UTC (rev 55006) @@ -5,6 +5,10 @@ > > static void evas_event_callback_clear(Evas *e); > > int _evas_event_counter = 0; > > > > +EVAS_MEMPOOL(_mp_fn); > > +EVAS_MEMPOOL(_mp_cb); > > +EVAS_MEMPOOL(_mp_pc); > > + > > void > > _evas_post_event_callback_call(Evas *e) > > { > > @@ -19,7 +23,7 @@ > > { > > if (!pc->func((void*)pc->data, e)) skip = 1; > > } > > - free(pc); > > + EVAS_MEMPOOL_FREE(_mp_pc, pc); > > } > > _evas_unwalk(e); > > } > > @@ -31,7 +35,7 @@ > > > > EINA_LIST_FREE(e->post_events, pc) > > { > > - free(pc); > > + EVAS_MEMPOOL_FREE(_mp_pc, pc); > > } > > _evas_unwalk(e); > > } > > @@ -51,7 +55,7 @@ > > if (fn->delete_me) > > { > > *list = eina_inlist_remove(*list, EINA_INLIST_GET(fn)); > > - free(fn); > > + EVAS_MEMPOOL_FREE(_mp_fn, fn); > > } > > } > > } > > @@ -65,7 +69,7 @@ > > evas_event_callback_list_post_free(&obj->callbacks->callbacks); > > if (!obj->callbacks->callbacks) > > { > > - free(obj->callbacks); > > + EVAS_MEMPOOL_FREE(_mp_cb, obj->callbacks); > > obj->callbacks = NULL; > > } > > } > > @@ -79,7 +83,7 @@ > > evas_event_callback_list_post_free(&e->callbacks->callbacks); > > if (!e->callbacks->callbacks) > > { > > - free(e->callbacks); > > + EVAS_MEMPOOL_FREE(_mp_cb, e->callbacks); > > e->callbacks = NULL; > > } > > } > > @@ -100,7 +104,7 @@ > > /* MEM OK */ > > if (!obj->callbacks) return; > > evas_event_callback_list_post_free(&obj->callbacks->callbacks); > > - free(obj->callbacks); > > + EVAS_MEMPOOL_FREE(_mp_cb, obj->callbacks); > > obj->callbacks = NULL; > > } > > > > @@ -120,7 +124,7 @@ > > /* MEM OK */ > > if (!e->callbacks) return; > > evas_event_callback_list_post_free(&e->callbacks->callbacks); > > - free(e->callbacks); > > + EVAS_MEMPOOL_FREE(_mp_cb, e->callbacks); > > e->callbacks = NULL; > > } > > > > @@ -440,19 +444,22 @@ > > > > if (!func) return; > > > > - fn = evas_mem_calloc(sizeof(Evas_Func_Node)); > > + if (!obj->callbacks) > > + { > > + EVAS_MEMPOOL_INIT(_mp_cb, "evas_callbacks", Evas_Callbacks, 512, ); > > + obj->callbacks = EVAS_MEMPOOL_ALLOC(_mp_cb, Evas_Callbacks); > > + if (!obj->callbacks) return; > > + EVAS_MEMPOOL_PREP(_mp_cb, obj->callbacks, Evas_Callbacks); > > + } > > + > > + EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, ); > > + fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node); > > if (!fn) return; > > + EVAS_MEMPOOL_PREP(_mp_fn, fn, Evas_Func_Node); > > fn->func = func; > > fn->data = (void *)data; > > fn->type = type; > > > > - if (!obj->callbacks) > > - obj->callbacks = evas_mem_calloc(sizeof(Evas_Callbacks)); > > - if (!obj->callbacks) > > - { > > - free(fn); > > - return; > > - } > > obj->callbacks->callbacks = > > eina_inlist_prepend(obj->callbacks->callbacks, EINA_INLIST_GET(fn)); > > } > > @@ -648,19 +655,22 @@ > > > > if (!func) return; > > > > - fn = evas_mem_calloc(sizeof(Evas_Func_Node)); > > + if (!e->callbacks) > > + { > > + EVAS_MEMPOOL_INIT(_mp_cb, "evas_callbacks", Evas_Callbacks, 512, ); > > + e->callbacks = EVAS_MEMPOOL_ALLOC(_mp_cb, Evas_Callbacks); > > + if (!e->callbacks) return; > > + EVAS_MEMPOOL_PREP(_mp_cb, e->callbacks, Evas_Callbacks); > > + } > > + > > + EVAS_MEMPOOL_INIT(_mp_fn, "evas_func_node", Evas_Func_Node, 2048, ); > > + fn = EVAS_MEMPOOL_ALLOC(_mp_fn, Evas_Func_Node); > > if (!fn) return; > > + EVAS_MEMPOOL_PREP(_mp_fn, fn, Evas_Func_Node); > > fn->func = func; > > fn->data = (void *)data; > > fn->type = type; > > > > - if (!e->callbacks) > > - e->callbacks = evas_mem_calloc(sizeof(Evas_Callbacks)); > > - if (!e->callbacks) > > - { > > - free(fn); > > - return; > > - } > > e->callbacks->callbacks = > > eina_inlist_prepend(e->callbacks->callbacks, EINA_INLIST_GET(fn)); > > } > > @@ -809,8 +819,10 @@ > > return; > > MAGIC_CHECK_END(); > > > > - pc = evas_mem_calloc(sizeof(Evas_Post_Callback)); > > + EVAS_MEMPOOL_INIT(_mp_pc, "evas_post_callback", Evas_Post_Callback, > > 64, ); > > + pc = EVAS_MEMPOOL_ALLOC(_mp_pc, Evas_Post_Callback); > > if (!pc) return; > > + EVAS_MEMPOOL_PREP(_mp_pc, pc, Evas_Post_Callback); > > if (e->delete_me) return; > > > > pc->func = func; > > > > Modified: trunk/evas/src/lib/canvas/evas_object_image.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_object_image.c 2010-11-26 09:56:45 > > UTC (rev 55005) +++ trunk/evas/src/lib/canvas/evas_object_image.c > > 2010-11-26 10:01:18 UTC (rev 55006) @@ -123,6 +123,8 @@ > > * @{ > > */ > > > > +EVAS_MEMPOOL(_mp_obj); > > + > > /** > > * Creates a new image object on the given evas. > > * > > @@ -2344,7 +2346,10 @@ > > Evas_Object_Image *o; > > > > /* alloc obj private data */ > > - o = calloc(1, sizeof(Evas_Object_Image)); > > + EVAS_MEMPOOL_INIT(_mp_obj, "evas_object_image", Evas_Object_Image, 256, > > NULL); > > + o = EVAS_MEMPOOL_ALLOC(_mp_obj, Evas_Object_Image); > > + if (!o) return NULL; > > + EVAS_MEMPOOL_PREP(_mp_obj, o, Evas_Object_Image); > > o->magic = MAGIC_OBJ_IMAGE; > > o->cur.fill.w = 0; > > o->cur.fill.h = 0; > > @@ -2384,7 +2389,7 @@ > > o->magic = 0; > > EINA_LIST_FREE(o->pixel_updates, r) > > eina_rectangle_free(r); > > - free(o); > > + EVAS_MEMPOOL_FREE(_mp_obj, o); > > } > > > > static void > > > > Modified: trunk/evas/src/lib/canvas/evas_object_line.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_object_line.c 2010-11-26 09:56:45 > > UTC (rev 55005) +++ trunk/evas/src/lib/canvas/evas_object_line.c > > 2010-11-26 10:01:18 UTC (rev 55006) @@ -78,6 +78,8 @@ > > * @{ > > */ > > > > +EVAS_MEMPOOL(_mp_obj); > > + > > /** > > * Adds a new evas line object to the given evas. > > * @param e The given evas. > > @@ -253,7 +255,10 @@ > > Evas_Object_Line *o; > > > > /* alloc obj private data */ > > - o = calloc(1, sizeof(Evas_Object_Line)); > > + EVAS_MEMPOOL_INIT(_mp_obj, "evas_object_line", Evas_Object_Line, 16, > > NULL); > > + o = EVAS_MEMPOOL_ALLOC(_mp_obj, Evas_Object_Line); > > + if (!o) return NULL; > > + EVAS_MEMPOOL_PREP(_mp_obj, o, Evas_Object_Line); > > o->magic = MAGIC_OBJ_LINE; > > o->cur.x1 = 0; > > o->cur.y1 = 0; > > > > Modified: trunk/evas/src/lib/canvas/evas_object_main.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_object_main.c 2010-11-26 09:56:45 > > UTC (rev 55005) +++ trunk/evas/src/lib/canvas/evas_object_main.c > > 2010-11-26 10:01:18 UTC (rev 55006) @@ -1,11 +1,13 @@ > > #include "evas_common.h" > > #include "evas_private.h" > > > > +EVAS_MEMPOOL(_mp_obj); > > +EVAS_MEMPOOL(_mp_sh); > > + > > static Eina_Inlist * > > get_layer_objects(Evas_Layer *l) > > { > > - if( !l || !l->objects ) return NULL; > > - > > + if ((!l) || (!l->objects)) return NULL; > > return (EINA_INLIST_GET(l->objects)); > > } > > > > @@ -15,9 +17,11 @@ > > { > > Evas_Object *obj; > > > > - obj = calloc(1, sizeof(Evas_Object)); > > + EVAS_MEMPOOL_INIT(_mp_obj, "evas_object", Evas_Object, 512, NULL); > > + obj = EVAS_MEMPOOL_ALLOC(_mp_obj, Evas_Object); > > if (!obj) return NULL; > > - > > + EVAS_MEMPOOL_PREP(_mp_obj, obj, Evas_Object); > > + > > obj->magic = MAGIC_OBJ; > > obj->cur.scale = 1.0; > > obj->prev.scale = 1.0; > > @@ -51,8 +55,11 @@ > > free(node); > > } > > obj->magic = 0; > > - if (obj->size_hints) free(obj->size_hints); > > - free(obj); > > + if (obj->size_hints) > > + { > > + EVAS_MEMPOOL_FREE(_mp_sh, obj->size_hints); > > + } > > + EVAS_MEMPOOL_FREE(_mp_obj, obj); > > } > > > > void > > @@ -587,7 +594,10 @@ > > { > > if (obj->size_hints) return; > > > > - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); > > + EVAS_MEMPOOL_INIT(_mp_sh, "evas_size_hints", Evas_Size_Hints, 512, ); > > + obj->size_hints = EVAS_MEMPOOL_ALLOC(_mp_sh, Evas_Size_Hints); > > + if (!obj->size_hints) return; > > + EVAS_MEMPOOL_PREP(_mp_sh, obj->size_hints, Evas_Size_Hints); > > obj->size_hints->max.w = -1; > > obj->size_hints->max.h = -1; > > obj->size_hints->align.x = 0.5; > > > > Modified: trunk/evas/src/lib/canvas/evas_object_polygon.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_object_polygon.c 2010-11-26 09:56:45 > > UTC (rev 55005) +++ trunk/evas/src/lib/canvas/evas_object_polygon.c > > 2010-11-26 10:01:18 UTC (rev 55006) @@ -80,6 +80,8 @@ > > * @{ > > */ > > > > +EVAS_MEMPOOL(_mp_obj); > > + > > /** > > * Adds a new evas polygon object to the given evas. > > * @param e The given evas. > > @@ -281,7 +283,10 @@ > > Evas_Object_Polygon *o; > > > > /* alloc obj private data */ > > - o = calloc(1, sizeof(Evas_Object_Polygon)); > > + EVAS_MEMPOOL_INIT(_mp_obj, "evas_object_polygon", Evas_Object_Polygon, > > 32, NULL); > > + o = EVAS_MEMPOOL_ALLOC(_mp_obj, Evas_Object_Polygon); > > + if (!o) return NULL; > > + EVAS_MEMPOOL_PREP(_mp_obj, o, Evas_Object_Polygon); > > o->magic = MAGIC_OBJ_POLYGON; > > return o; > > } > > @@ -306,7 +311,7 @@ > > > > obj->layer->evas->engine.data.context, > > > > o->engine_data); > > o->magic = 0; > > - free(o); > > + EVAS_MEMPOOL_FREE(_mp_obj, o); > > } > > > > static void > > > > Modified: trunk/evas/src/lib/canvas/evas_object_rectangle.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_object_rectangle.c 2010-11-26 09:56:45 > > UTC (rev 55005) +++ trunk/evas/src/lib/canvas/evas_object_rectangle.c > > 2010-11-26 10:01:18 UTC (rev 55006) @@ -72,6 +72,8 @@ > > * @{ > > */ > > > > +EVAS_MEMPOOL(_mp_obj); > > + > > /** > > * Adds a rectangle to the given evas. > > * @param e The given evas. > > @@ -125,7 +127,10 @@ > > Evas_Object_Rectangle *o; > > > > /* alloc obj private data */ > > - o = calloc(1, sizeof(Evas_Object_Rectangle)); > > + EVAS_MEMPOOL_INIT(_mp_obj, "evas_object_rectangle", > > Evas_Object_Rectangle, 256, NULL); > > + o = EVAS_MEMPOOL_ALLOC(_mp_obj, Evas_Object_Rectangle); > > + if (!o) return NULL; > > + EVAS_MEMPOOL_PREP(_mp_obj, o, Evas_Object_Rectangle); > > o->magic = MAGIC_OBJ_RECTANGLE; > > return o; > > } > > @@ -142,7 +147,7 @@ > > MAGIC_CHECK_END(); > > /* free obj */ > > o->magic = 0; > > - free(o); > > + EVAS_MEMPOOL_FREE(_mp_obj, o); > > } > > > > static void > > > > Modified: trunk/evas/src/lib/canvas/evas_object_smart.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_object_smart.c 2010-11-26 09:56:45 > > UTC (rev 55005) +++ trunk/evas/src/lib/canvas/evas_object_smart.c > > 2010-11-26 10:01:18 UTC (rev 55006) @@ -64,6 +64,9 @@ > > NULL > > }; > > > > +EVAS_MEMPOOL(_mp_obj); > > +EVAS_MEMPOOL(_mp_cb); > > + > > /* public funcs */ > > /** > > * Store a pointer to user data for a smart object. > > @@ -428,7 +431,10 @@ > > MAGIC_CHECK_END(); > > if (!event) return; > > if (!func) return; > > - cb = calloc(1, sizeof(Evas_Smart_Callback)); > > + EVAS_MEMPOOL_INIT(_mp_cb, "evas_smart_callback", Evas_Smart_Callback, > > 512, ); > > + cb = EVAS_MEMPOOL_ALLOC(_mp_cb, Evas_Smart_Callback); > > + if (!cb) return; > > + EVAS_MEMPOOL_PREP(_mp_cb, cb, Evas_Smart_Callback); > > cb->event = eina_stringshare_add(event); > > cb->func = func; > > cb->func_data = (void *)data; > > @@ -887,7 +893,7 @@ > > { > > o->callbacks = eina_list_remove(o->callbacks, cb); > > if (cb->event) eina_stringshare_del(cb->event); > > - free(cb); > > + EVAS_MEMPOOL_FREE(_mp_cb, cb); > > } > > } > > } > > @@ -925,7 +931,7 @@ > > cb = o->callbacks->data; > > o->callbacks = eina_list_remove(o->callbacks, cb); > > if (cb->event) eina_stringshare_del(cb->event); > > - free(cb); > > + EVAS_MEMPOOL_FREE(_mp_cb, cb); > > } > > > > evas_smart_cb_descriptions_resize(&o->callbacks_descriptions, 0); > > @@ -1022,7 +1028,10 @@ > > Evas_Object_Smart *o; > > > > /* alloc obj private data */ > > - o = calloc(1, sizeof(Evas_Object_Smart)); > > + EVAS_MEMPOOL_INIT(_mp_obj, "evas_object_smart", Evas_Object_Smart, 256, > > NULL); > > + o = EVAS_MEMPOOL_ALLOC(_mp_obj, Evas_Object_Smart); > > + if (!o) return NULL; > > + EVAS_MEMPOOL_PREP(_mp_obj, o, Evas_Object_Smart); > > o->magic = MAGIC_OBJ_SMART; > > return o; > > } > > @@ -1039,7 +1048,7 @@ > > MAGIC_CHECK_END(); > > /* free obj */ > > o->magic = 0; > > - free(o); > > + EVAS_MEMPOOL_FREE(_mp_obj, o); > > } > > > > static void > > > > Modified: trunk/evas/src/lib/canvas/evas_object_smart_clipped.c > > =================================================================== > > --- trunk/evas/src/lib/canvas/evas_object_smart_clipped.c 2010-11-26 > > 09:56:45 UTC (rev 55005) +++ > > trunk/evas/src/lib/canvas/evas_object_smart_clipped.c 2010-11-26 > > 10:01:18 UTC (rev 55006) @@ -67,7 +67,7 @@ > > > > enlightenment-...@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > > > -- > Gustavo Sverzut Barbieri > http://profusion.mobi embedded systems > -------------------------------------- > MSN: barbi...@gmail.com > Skype: gsbarbieri > Mobile: +55 (19) 9225-2202 > > ------------------------------------------------------------------------------ > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! > Tap into the largest installed PC base & get more eyes on your game by > optimizing for Intel(R) Graphics Technology. Get started today with the > Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. > http://p.sf.net/sfu/intelisp-dev2dev > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel