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