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

Reply via email to