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