Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_callbacks.c evas_object_gradient.c evas_object_image.c 
        evas_object_line.c evas_object_polygon.c evas_object_smart.c 
        evas_object_text.c 


Log Message:


i've been leaning mem usage down... save 30% on all evas_objects now! :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_callbacks.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- evas_callbacks.c    29 Jan 2003 23:37:09 -0000      1.10
+++ evas_callbacks.c    9 Feb 2003 04:22:45 -0000       1.11
@@ -44,45 +44,68 @@
 evas_object_event_callback_clear(Evas_Object *obj)
 {
    Evas_Callback_Type t;
-   
-   if (!obj->callbacks.deletions_waiting) return;
-   obj->callbacks.deletions_waiting = 0;
-   evas_object_event_callback_list_post_free(&(obj->callbacks.in));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.out));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.down));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.up));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.move));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.free));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.key_down));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.key_up));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.obj_focus_in));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.obj_focus_out));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.obj_show));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.obj_hide));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.obj_move));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.obj_resize));
-   evas_object_event_callback_list_post_free(&(obj->callbacks.obj_restack));
+
+   if (!obj->callbacks) return;
+   if (!obj->callbacks->deletions_waiting) return;
+   obj->callbacks->deletions_waiting = 0;
+   evas_object_event_callback_list_post_free(&(obj->callbacks->in));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->out));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->down));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->up));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->move));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->free));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->key_down));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->key_up));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->obj_focus_in));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->obj_focus_out));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->obj_show));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->obj_hide));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->obj_move));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->obj_resize));
+   evas_object_event_callback_list_post_free(&(obj->callbacks->obj_restack));
+   if ((!obj->callbacks->in) &&
+       (!obj->callbacks->out) &&
+       (!obj->callbacks->down) &&
+       (!obj->callbacks->up) &&
+       (!obj->callbacks->move) &&
+       (!obj->callbacks->free) &&
+       (!obj->callbacks->key_down) &&
+       (!obj->callbacks->key_up) &&
+       (!obj->callbacks->obj_focus_in) &&
+       (!obj->callbacks->obj_focus_out) &&
+       (!obj->callbacks->obj_show) &&
+       (!obj->callbacks->obj_hide) &&
+       (!obj->callbacks->obj_move) &&
+       (!obj->callbacks->obj_resize) &&
+       (!obj->callbacks->obj_restack))
+     {
+       free(obj->callbacks);
+       obj->callbacks = NULL;  
+     }
 }
 
 void
 evas_object_event_callback_cleanup(Evas_Object *obj)
 {
    /* MEM OK */
-   evas_object_event_callback_list_free(&(obj->callbacks.in));
-   evas_object_event_callback_list_free(&(obj->callbacks.out));
-   evas_object_event_callback_list_free(&(obj->callbacks.down));
-   evas_object_event_callback_list_free(&(obj->callbacks.up));
-   evas_object_event_callback_list_free(&(obj->callbacks.move));
-   evas_object_event_callback_list_free(&(obj->callbacks.free));
-   evas_object_event_callback_list_free(&(obj->callbacks.key_down));
-   evas_object_event_callback_list_free(&(obj->callbacks.key_up));
-   evas_object_event_callback_list_free(&(obj->callbacks.obj_focus_in));
-   evas_object_event_callback_list_free(&(obj->callbacks.obj_focus_out));
-   evas_object_event_callback_list_free(&(obj->callbacks.obj_show));
-   evas_object_event_callback_list_free(&(obj->callbacks.obj_hide));
-   evas_object_event_callback_list_free(&(obj->callbacks.obj_move));
-   evas_object_event_callback_list_free(&(obj->callbacks.obj_resize));
-   evas_object_event_callback_list_free(&(obj->callbacks.obj_restack));
+   if (!obj->callbacks) return;
+   evas_object_event_callback_list_free(&(obj->callbacks->in));
+   evas_object_event_callback_list_free(&(obj->callbacks->out));
+   evas_object_event_callback_list_free(&(obj->callbacks->down));
+   evas_object_event_callback_list_free(&(obj->callbacks->up));
+   evas_object_event_callback_list_free(&(obj->callbacks->move));
+   evas_object_event_callback_list_free(&(obj->callbacks->free));
+   evas_object_event_callback_list_free(&(obj->callbacks->key_down));
+   evas_object_event_callback_list_free(&(obj->callbacks->key_up));
+   evas_object_event_callback_list_free(&(obj->callbacks->obj_focus_in));
+   evas_object_event_callback_list_free(&(obj->callbacks->obj_focus_out));
+   evas_object_event_callback_list_free(&(obj->callbacks->obj_show));
+   evas_object_event_callback_list_free(&(obj->callbacks->obj_hide));
+   evas_object_event_callback_list_free(&(obj->callbacks->obj_move));
+   evas_object_event_callback_list_free(&(obj->callbacks->obj_resize));
+   evas_object_event_callback_list_free(&(obj->callbacks->obj_restack));
+   free(obj->callbacks);
+   obj->callbacks = NULL;
 }
 
 void
@@ -91,58 +114,59 @@
    /* MEM OK */
    Evas_Object_List **l_mod, *l;
    
+   if (!obj->callbacks) return;
    switch (type)
      {
       case EVAS_CALLBACK_MOUSE_IN:
-       l_mod = &(obj->callbacks.in);
+       l_mod = &(obj->callbacks->in);
        break;
       case EVAS_CALLBACK_MOUSE_OUT:
-       l_mod = &(obj->callbacks.out);
+       l_mod = &(obj->callbacks->out);
        break;
       case EVAS_CALLBACK_MOUSE_DOWN:
-       l_mod = &(obj->callbacks.down);
+       l_mod = &(obj->callbacks->down);
        break;
       case EVAS_CALLBACK_MOUSE_UP:
-       l_mod = &(obj->callbacks.up);
+       l_mod = &(obj->callbacks->up);
        break;
       case EVAS_CALLBACK_MOUSE_MOVE:
-       l_mod = &(obj->callbacks.move);
+       l_mod = &(obj->callbacks->move);
        break;
       case EVAS_CALLBACK_FREE:
-       l_mod = &(obj->callbacks.free);
+       l_mod = &(obj->callbacks->free);
        break;
       case EVAS_CALLBACK_KEY_DOWN:
-       l_mod = &(obj->callbacks.key_down);
+       l_mod = &(obj->callbacks->key_down);
        break;
       case EVAS_CALLBACK_KEY_UP:
-       l_mod = &(obj->callbacks.key_up);
+       l_mod = &(obj->callbacks->key_up);
        break;
       case EVAS_CALLBACK_FOCUS_IN:
-       l_mod = &(obj->callbacks.obj_focus_in);
+       l_mod = &(obj->callbacks->obj_focus_in);
        break;
       case EVAS_CALLBACK_FOCUS_OUT:
-       l_mod = &(obj->callbacks.obj_focus_out);
+       l_mod = &(obj->callbacks->obj_focus_out);
        break;
       case EVAS_CALLBACK_SHOW:
-       l_mod = &(obj->callbacks.obj_show);
+       l_mod = &(obj->callbacks->obj_show);
        break;
       case EVAS_CALLBACK_HIDE:
-       l_mod = &(obj->callbacks.obj_hide);
+       l_mod = &(obj->callbacks->obj_hide);
        break;
       case EVAS_CALLBACK_MOVE:
-       l_mod = &(obj->callbacks.obj_move);
+       l_mod = &(obj->callbacks->obj_move);
        break;
       case EVAS_CALLBACK_RESIZE:
-       l_mod = &(obj->callbacks.obj_resize);
+       l_mod = &(obj->callbacks->obj_resize);
        break;
       case EVAS_CALLBACK_RESTACK:
-       l_mod = &(obj->callbacks.obj_restack);
+       l_mod = &(obj->callbacks->obj_restack);
        break;
       default:
        return;
        break;
      }
-   obj->callbacks.walking_list++;
+   obj->callbacks->walking_list++;
    for (l = *l_mod; l; l = l->next)
      {
        Evas_Func_Node *fn;
@@ -152,8 +176,8 @@
          fn->func(fn->data, obj->layer->evas, obj, event_info);
        if (obj->delete_me) break;
      }
-   obj->callbacks.walking_list--;
-   if (!obj->callbacks.walking_list)
+   obj->callbacks->walking_list--;
+   if (!obj->callbacks->walking_list)
      evas_object_event_callback_clear(obj);
 }
 
@@ -328,52 +352,59 @@
    fn->func = func;
    fn->data = (void *)data;
 
+   if (!obj->callbacks)
+     obj->callbacks = evas_mem_calloc(sizeof(Evas_Callbacks));
+   if (!obj->callbacks)
+     {
+       free(fn);
+       return;
+     }
    switch (type)
      {
       case EVAS_CALLBACK_MOUSE_IN:
-       l_mod = &(obj->callbacks.in);
+       l_mod = &(obj->callbacks->in);
        break;
       case EVAS_CALLBACK_MOUSE_OUT:
-       l_mod = &(obj->callbacks.out);
+       l_mod = &(obj->callbacks->out);
        break;
       case EVAS_CALLBACK_MOUSE_DOWN:
-       l_mod = &(obj->callbacks.down);
+       l_mod = &(obj->callbacks->down);
        break;
       case EVAS_CALLBACK_MOUSE_UP:
-       l_mod = &(obj->callbacks.up);
+       l_mod = &(obj->callbacks->up);
        break;
       case EVAS_CALLBACK_MOUSE_MOVE:
-       l_mod = &(obj->callbacks.move);
+       l_mod = &(obj->callbacks->move);
        break;
       case EVAS_CALLBACK_FREE:
-       l_mod = &(obj->callbacks.free);
+       l_mod = &(obj->callbacks->free);
        break;
       case EVAS_CALLBACK_KEY_DOWN:
-       l_mod = &(obj->callbacks.key_down);
+       l_mod = &(obj->callbacks->key_down);
        break;
       case EVAS_CALLBACK_KEY_UP:
-       l_mod = &(obj->callbacks.key_up);
+       l_mod = &(obj->callbacks->key_up);
        break;
       case EVAS_CALLBACK_FOCUS_IN:
-       l_mod = &(obj->callbacks.obj_focus_in);
+       l_mod = &(obj->callbacks->obj_focus_in);
        break;
       case EVAS_CALLBACK_FOCUS_OUT:
-       l_mod = &(obj->callbacks.obj_focus_out);
+       l_mod = &(obj->callbacks->obj_focus_out);
        break;
       case EVAS_CALLBACK_SHOW:
-       l_mod = &(obj->callbacks.obj_show);
+       l_mod = &(obj->callbacks->obj_show);
        break;
       case EVAS_CALLBACK_HIDE:
-       l_mod = &(obj->callbacks.obj_hide);
+       l_mod = &(obj->callbacks->obj_hide);
        break;
       case EVAS_CALLBACK_MOVE:
-       l_mod = &(obj->callbacks.obj_move);
+       l_mod = &(obj->callbacks->obj_move);
        break;
       case EVAS_CALLBACK_RESIZE:
-       l_mod = &(obj->callbacks.obj_resize);
+       l_mod = &(obj->callbacks->obj_resize);
        break;
       case EVAS_CALLBACK_RESTACK:
-       l_mod = &(obj->callbacks.obj_restack);
+       l_mod = &(obj->callbacks->obj_restack);
        break;
       default:
        free(fn);
@@ -418,52 +449,54 @@
    
    if (!func) return NULL;
    
+   if (!obj->callbacks) return NULL;
+   
    switch (type)
      {
       case EVAS_CALLBACK_MOUSE_IN:
-       l_mod = &(obj->callbacks.in);
+       l_mod = &(obj->callbacks->in);
        break;
       case EVAS_CALLBACK_MOUSE_OUT:
-       l_mod = &(obj->callbacks.out);
+       l_mod = &(obj->callbacks->out);
        break;
       case EVAS_CALLBACK_MOUSE_DOWN:
-       l_mod = &(obj->callbacks.down);
+       l_mod = &(obj->callbacks->down);
        break;
       case EVAS_CALLBACK_MOUSE_UP:
-       l_mod = &(obj->callbacks.up);
+       l_mod = &(obj->callbacks->up);
        break;
       case EVAS_CALLBACK_MOUSE_MOVE:
-       l_mod = &(obj->callbacks.move);
+       l_mod = &(obj->callbacks->move);
        break;
       case EVAS_CALLBACK_FREE:
-       l_mod = &(obj->callbacks.free);
+       l_mod = &(obj->callbacks->free);
        break;
       case EVAS_CALLBACK_KEY_DOWN:
-       l_mod = &(obj->callbacks.key_down);
+       l_mod = &(obj->callbacks->key_down);
        break;
       case EVAS_CALLBACK_KEY_UP:
-       l_mod = &(obj->callbacks.key_up);
+       l_mod = &(obj->callbacks->key_up);
        break;
       case EVAS_CALLBACK_FOCUS_IN:
-       l_mod = &(obj->callbacks.obj_focus_in);
+       l_mod = &(obj->callbacks->obj_focus_in);
        break;
       case EVAS_CALLBACK_FOCUS_OUT:
-       l_mod = &(obj->callbacks.obj_focus_out);
+       l_mod = &(obj->callbacks->obj_focus_out);
        break;
       case EVAS_CALLBACK_SHOW:
-       l_mod = &(obj->callbacks.obj_show);
+       l_mod = &(obj->callbacks->obj_show);
        break;
       case EVAS_CALLBACK_HIDE:
-       l_mod = &(obj->callbacks.obj_hide);
+       l_mod = &(obj->callbacks->obj_hide);
        break;
       case EVAS_CALLBACK_MOVE:
-       l_mod = &(obj->callbacks.obj_move);
+       l_mod = &(obj->callbacks->obj_move);
        break;
       case EVAS_CALLBACK_RESIZE:
-       l_mod = &(obj->callbacks.obj_resize);
+       l_mod = &(obj->callbacks->obj_resize);
        break;
       case EVAS_CALLBACK_RESTACK:
-       l_mod = &(obj->callbacks.obj_restack);
+       l_mod = &(obj->callbacks->obj_restack);
        break;
       default:
        return NULL;
@@ -480,8 +513,8 @@
             
             data = fn->data;
             fn->delete_me = 1;
-            obj->callbacks.deletions_waiting = 1;
-            if (!obj->callbacks.walking_list)
+            obj->callbacks->deletions_waiting = 1;
+            if (!obj->callbacks->walking_list)
               evas_object_event_callback_clear(obj);
             return data;
          }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_gradient.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- evas_object_gradient.c      8 Nov 2002 08:02:14 -0000       1.1
+++ evas_object_gradient.c      9 Feb 2003 04:22:45 -0000       1.2
@@ -15,9 +15,9 @@
    struct {
       double         angle;
    } cur, prev;
-   int               changed : 1;
-   int               gradient_changed : 1;
-   int               gradient_opaque : 1;
+   char              changed : 1;
+   char              gradient_changed : 1;
+   char              gradient_opaque : 1;
    
    void             *engine_data;
 };
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_image.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_object_image.c 22 Jan 2003 22:24:36 -0000      1.3
+++ evas_object_image.c 9 Feb 2003 04:22:45 -0000       1.4
@@ -15,24 +15,22 @@
    struct {
       struct {
         double      x, y, w, h;
-      } fill;
-      
+      } fill;      
       struct {
-        int         w, h;
+        short       w, h;
       } image;
-
       struct {
-        int         l, r, t, b;
+        short         l, r, t, b;
       } border;
 
       char          *file;
       char          *key;
       
-      int            smooth_scale : 1;
-      int            has_alpha :1;
+      char           smooth_scale : 1;
+      char           has_alpha :1;
    } cur, prev;
    
-   int               changed : 1;
+   char              changed : 1;
    
    int               load_error;
    Evas_List        *pixel_updates;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_line.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_object_line.c  10 Dec 2002 06:45:18 -0000      1.2
+++ evas_object_line.c  9 Feb 2003 04:22:45 -0000       1.3
@@ -20,7 +20,7 @@
       } cache;
       double         x1, y1, x2, y2;
    } cur, prev;
-   int               changed : 1;
+   char              changed : 1;
    
    void             *engine_data;
 };
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_polygon.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_object_polygon.c       10 Dec 2002 06:45:18 -0000      1.2
+++ evas_object_polygon.c       9 Feb 2003 04:22:45 -0000       1.3
@@ -12,9 +12,9 @@
 struct _Evas_Object_Polygon
 {
    DATA32            magic;
-   int               changed : 1;
-   Evas_List        *points;
-   
+   Evas_List        *points;   
+   char              changed : 1;
+
    void             *engine_data;
 };
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_smart.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- evas_object_smart.c 20 Jan 2003 04:36:17 -0000      1.5
+++ evas_object_smart.c 9 Feb 2003 04:22:45 -0000       1.6
@@ -14,7 +14,7 @@
 struct _Evas_Smart_Callback
 {
    char *event;
-   int   delete_me : 1;
+   char  delete_me : 1;
    void (*func) (void *data, Evas_Object *obj, void *event_info);
    void *func_data;
 };
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_text.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- evas_object_text.c  22 Jan 2003 22:24:36 -0000      1.6
+++ evas_object_text.c  9 Feb 2003 04:22:45 -0000       1.7
@@ -17,10 +17,10 @@
       char          *font;
       double         size;
    } cur, prev;
-   int               changed : 1;
+   char              changed : 1;
    
-   double            ascent, descent;
-   double            max_ascent, max_descent;
+   float             ascent, descent;
+   float             max_ascent, max_descent;
    
    void             *engine_data;
 };




-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to