From b6c300dd69ba91369644a11dedb2416b974b3c7a Mon Sep 17 00:00:00 2001 From: rbdpngn Date: Sat, 22 Jan 2005 06:58:34 +0000 Subject: [PATCH] Add type checking for the various E objects. SVN revision: 13053 --- src/bin/e_apps.c | 6 +++++- src/bin/e_apps.h | 2 ++ src/bin/e_border.c | 32 ++++++++++++++++++++++++++------ src/bin/e_border.h | 2 ++ src/bin/e_config.c | 16 ++++++++++++---- src/bin/e_container.c | 26 ++++++++++++++++++++++++-- src/bin/e_container.h | 3 +++ src/bin/e_desk.c | 11 +++++++++-- src/bin/e_desk.h | 2 ++ src/bin/e_gadman.c | 24 ++++++++++++++++++++++-- src/bin/e_gadman.h | 3 +++ src/bin/e_manager.c | 9 ++++++++- src/bin/e_manager.h | 2 ++ src/bin/e_menu.c | 33 +++++++++++++++++++++++++++++++-- src/bin/e_menu.h | 4 ++++ src/bin/e_module.c | 7 ++++++- src/bin/e_module.h | 2 ++ src/bin/e_object.c | 3 ++- src/bin/e_object.h | 20 +++++++++++++------- src/bin/e_path.c | 7 ++++++- src/bin/e_path.h | 2 ++ src/bin/e_zone.c | 13 ++++++++++--- src/bin/e_zone.h | 2 ++ 23 files changed, 198 insertions(+), 33 deletions(-) diff --git a/src/bin/e_apps.c b/src/bin/e_apps.c index ca5b68cbf..fffb6cd2f 100644 --- a/src/bin/e_apps.c +++ b/src/bin/e_apps.c @@ -94,7 +94,7 @@ e_app_new(char *path, int scan_subdirs) e_object_ref(E_OBJECT(a)); return a; } - a = E_OBJECT_ALLOC(E_App, _e_app_free); + a = E_OBJECT_ALLOC(E_App, E_APP_TYPE, _e_app_free); a->mod_time = e_file_mod_time(path); if (e_file_is_dir(path)) { @@ -164,6 +164,7 @@ e_app_subdir_scan(E_App *a, int scan_subdirs) char buf[4096]; E_OBJECT_CHECK(a); + E_OBJECT_TYPE_CHECK(a, E_APP_TYPE); if (a->exe) return; if (a->scanned) { @@ -213,6 +214,7 @@ e_app_exec(E_App *a) Ecore_Exe *exe; E_OBJECT_CHECK_RETURN(a, 0); + E_OBJECT_TYPE_CHECK_RETURN(a, E_APP_TYPE, 0); if (!a->exe) return 0; exe = ecore_exe_run(a->exe, a); if (!exe) return 0; @@ -226,6 +228,7 @@ int e_app_starting_get(E_App *a) { E_OBJECT_CHECK_RETURN(a, 0); + E_OBJECT_TYPE_CHECK_RETURN(a, E_APP_TYPE, 0); return a->starting; } @@ -233,6 +236,7 @@ int e_app_running_get(E_App *a) { E_OBJECT_CHECK_RETURN(a, 0); + E_OBJECT_TYPE_CHECK_RETURN(a, E_APP_TYPE, 0); if (a->instances) return 1; return 0; } diff --git a/src/bin/e_apps.h b/src/bin/e_apps.h index 9a809b358..28d19d27e 100644 --- a/src/bin/e_apps.h +++ b/src/bin/e_apps.h @@ -17,6 +17,8 @@ typedef struct _E_App E_App; #ifndef E_APPS_H #define E_APPS_H +#define E_APP_TYPE 0xE0b01001 + struct _E_App { E_Object e_obj_inherit; diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 6147082e5..c6236efde 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -156,7 +156,7 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map) unsigned int managed, desk[2]; int deskx, desky; - bd = E_OBJECT_ALLOC(E_Border, _e_border_free); + bd = E_OBJECT_ALLOC(E_Border, E_BORDER_TYPE, _e_border_free); if (!bd) return NULL; e_object_del_func_set(E_OBJECT(bd), E_OBJECT_CLEANUP_FUNC(_e_border_del)); @@ -297,7 +297,9 @@ e_border_desk_set(E_Border *bd, E_Desk *desk) unsigned int deskpos[2]; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); E_OBJECT_CHECK(desk); + E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); if (bd->desk == desk) return; bd->desk->clients = evas_list_remove(bd->desk->clients, bd); desk->clients = evas_list_append(desk->clients, bd); @@ -325,6 +327,7 @@ e_border_show(E_Border *bd) unsigned int visible; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (bd->visible) return; e_container_shape_show(bd->shape); ecore_x_window_show(bd->client.win); @@ -351,6 +354,7 @@ e_border_hide(E_Border *bd) unsigned int visible; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (!bd->visible) return; ecore_x_window_hide(bd->client.win); @@ -382,6 +386,7 @@ e_border_move(E_Border *bd, int x, int y) E_Event_Border_Move *ev; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (bd->new_client) { E_Border_Pending_Move_Resize *pnd; @@ -417,6 +422,7 @@ e_border_resize(E_Border *bd, int w, int h) { E_Event_Border_Resize *ev; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (bd->new_client) { E_Border_Pending_Move_Resize *pnd; @@ -456,6 +462,7 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h) E_Event_Border_Resize *rev; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (bd->new_client) { E_Border_Pending_Move_Resize *pnd; @@ -508,6 +515,7 @@ e_border_raise(E_Border *bd) Ecore_X_Window mwin; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_append(bd->container->clients, bd); mwin = e_menu_grab_window_get(); @@ -525,6 +533,7 @@ void e_border_lower(E_Border *bd) { E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_prepend(bd->container->clients, bd); ecore_x_window_lower(bd->win); @@ -534,6 +543,7 @@ void e_border_stack_above(E_Border *bd, E_Border *above) { E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_append_relative(bd->container->clients, bd, above); ecore_x_window_configure(bd->win, @@ -547,6 +557,7 @@ void e_border_stack_below(E_Border *bd, E_Border *below) { E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); bd->container->clients = evas_list_remove(bd->container->clients, bd); bd->container->clients = evas_list_prepend_relative(bd->container->clients, bd, below); ecore_x_window_configure(bd->win, @@ -560,6 +571,7 @@ void e_border_focus_set(E_Border *bd, int focus, int set) { E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (!bd->client.icccm.accepts_focus) return; if ((focus) && (!bd->focused)) edje_object_signal_emit(bd->bg_object, "active", ""); @@ -607,6 +619,7 @@ e_border_shade(E_Border *bd, E_Direction dir) E_Event_Border_Resize *ev; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (bd->maximized) return; if (!bd->shaded) { @@ -679,6 +692,7 @@ e_border_unshade(E_Border *bd, E_Direction dir) E_Event_Border_Resize *ev; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if (bd->maximized) return; if (bd->shaded) { @@ -757,6 +771,7 @@ void e_border_maximize(E_Border *bd) { E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if ((bd->shaded) || (bd->shading)) return; if (!bd->maximized) @@ -783,6 +798,7 @@ void e_border_unmaximize(E_Border *bd) { E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if ((bd->shaded) || (bd->shading)) return; if (bd->maximized) { @@ -803,6 +819,7 @@ e_border_iconify(E_Border *bd) { unsigned int iconic; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if ((bd->shading)) return; if (!bd->iconic) { @@ -822,6 +839,7 @@ e_border_uniconify(E_Border *bd) unsigned int iconic; E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); if ((bd->shading)) return; if (bd->iconic) { @@ -841,16 +859,18 @@ e_border_uniconify(E_Border *bd) void e_border_stick(E_Border *bd) { - E_OBJECT_CHECK(bd); - bd->sticky = 1; + E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); + bd->sticky = 1; } void e_border_unstick(E_Border *bd) { - E_OBJECT_CHECK(bd); - bd->sticky = 0; - bd->desk = e_desk_current_get(bd->zone); + E_OBJECT_CHECK(bd); + E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE); + bd->sticky = 0; + bd->desk = e_desk_current_get(bd->zone); } E_Border * diff --git a/src/bin/e_border.h b/src/bin/e_border.h index 3c5930aee..f3b03c329 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -30,6 +30,8 @@ typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set; #ifndef E_BORDER_H #define E_BORDER_H +#define E_BORDER_TYPE 0xE0b01002 + struct _E_Border { E_Object e_obj_inherit; diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 67304f7ab..2f5059fe8 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -89,17 +89,25 @@ e_config_init(void) em->enabled = 1; e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); - em->name = strdup("battery"); - e_config->modules = evas_list_append(e_config->modules, em); + em->name = strdup("snow"); em->enabled = 1; + e_config->modules = evas_list_append(e_config->modules, em); + em = E_NEW(E_Config_Module, 1); + em->name = strdup("flame"); + em->enabled = 1; + e_config->modules = evas_list_append(e_config->modules, em); + em = E_NEW(E_Config_Module, 1); + em->name = strdup("battery"); + em->enabled = 1; + e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); em->name = strdup("temperature"); - e_config->modules = evas_list_append(e_config->modules, em); em->enabled = 1; + e_config->modules = evas_list_append(e_config->modules, em); em = E_NEW(E_Config_Module, 1); em->name = strdup("pager"); - e_config->modules = evas_list_append(e_config->modules, em); em->enabled = 1; + e_config->modules = evas_list_append(e_config->modules, em); } } diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 1b7425af5..9e97c130b 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -46,7 +46,7 @@ e_container_new(E_Manager *man) char name[40]; int i, n; - con = E_OBJECT_ALLOC(E_Container, _e_container_free); + con = E_OBJECT_ALLOC(E_Container, E_CONTAINER_TYPE, _e_container_free); if (!con) return NULL; con->manager = man; con->manager->containers = evas_list_append(con->manager->containers, con); @@ -106,6 +106,7 @@ e_container_show(E_Container *con) { printf("Container show!\n"); E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); if (con->visible) return; ecore_x_window_show(con->win); con->visible = 1; @@ -115,6 +116,7 @@ void e_container_hide(E_Container *con) { E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); if (!con->visible) return; ecore_x_window_hide(con->win); con->visible = 0; @@ -125,6 +127,7 @@ e_container_current_get(E_Manager *man) { Evas_List *l; E_OBJECT_CHECK_RETURN(man, NULL); + E_OBJECT_TYPE_CHECK_RETURN(man, E_MANAGER_TYPE, NULL); for (l = man->containers; l; l = l->next) { @@ -139,6 +142,7 @@ void e_container_move(E_Container *con, int x, int y) { E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); if ((x == con->x) && (y == con->y)) return; con->x = x; con->y = y; @@ -150,6 +154,7 @@ void e_container_resize(E_Container *con, int w, int h) { E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); if ((w == con->w) && (h == con->h)) return; con->w = w; con->h = h; @@ -162,6 +167,7 @@ void e_container_move_resize(E_Container *con, int x, int y, int w, int h) { E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); if ((x == con->x) && (y == con->y) && (w == con->w) && (h == con->h)) return; con->x = x; con->y = y; @@ -177,6 +183,7 @@ void e_container_raise(E_Container *con) { E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); ecore_x_window_raise(con->win); } @@ -184,6 +191,7 @@ void e_container_lower(E_Container *con) { E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); ecore_x_window_lower(con->win); } @@ -191,6 +199,7 @@ Evas_List * e_container_clients_list_get(E_Container *con) { E_OBJECT_CHECK_RETURN(con, NULL); + E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); return con->clients; } @@ -200,6 +209,7 @@ e_container_zone_at_point_get(E_Container *con, int x, int y) Evas_List *l; E_OBJECT_CHECK_RETURN(con, NULL); + E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); for (l = con->zones; l; l = l->next) { E_Zone *zone; @@ -218,6 +228,7 @@ e_container_zone_number_get(E_Container *con, int num) Evas_List *l; E_OBJECT_CHECK_RETURN(con, NULL); + E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); for (l = con->zones; l; l = l->next) { E_Zone *zone; @@ -235,8 +246,9 @@ e_container_shape_add(E_Container *con) E_Container_Shape *es; E_OBJECT_CHECK_RETURN(con, NULL); + E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, 0); - es = E_OBJECT_ALLOC(E_Container_Shape, _e_container_shape_free); + es = E_OBJECT_ALLOC(E_Container_Shape, E_CONTAINER_SHAPE_TYPE, _e_container_shape_free); E_OBJECT_DEL_SET(es, _e_container_shape_del); es->con = con; con->shapes = evas_list_append(con->shapes, es); @@ -248,6 +260,7 @@ void e_container_shape_show(E_Container_Shape *es) { E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_CONTAINER_SHAPE_TYPE); if (es->visible) return; es->visible = 1; _e_container_shape_change_call(es, E_CONTAINER_SHAPE_SHOW); @@ -257,6 +270,7 @@ void e_container_shape_hide(E_Container_Shape *es) { E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_CONTAINER_SHAPE_TYPE); if (!es->visible) return; es->visible = 0; _e_container_shape_change_call(es, E_CONTAINER_SHAPE_HIDE); @@ -266,6 +280,7 @@ void e_container_shape_move(E_Container_Shape *es, int x, int y) { E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_CONTAINER_SHAPE_TYPE); if ((es->x == x) && (es->y == y)) return; es->x = x; es->y = y; @@ -276,6 +291,7 @@ void e_container_shape_resize(E_Container_Shape *es, int w, int h) { E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_CONTAINER_SHAPE_TYPE); if (w < 1) w = 1; if (h < 1) h = 1; if ((es->w == w) && (es->h == h)) return; @@ -288,6 +304,7 @@ Evas_List * e_container_shape_list_get(E_Container *con) { E_OBJECT_CHECK_RETURN(con, NULL); + E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); return con->shapes; } @@ -295,6 +312,7 @@ void e_container_shape_geometry_get(E_Container_Shape *es, int *x, int *y, int *w, int *h) { E_OBJECT_CHECK(es); + E_OBJECT_TYPE_CHECK(es, E_CONTAINER_SHAPE_TYPE); if (x) *x = es->x; if (y) *y = es->y; if (w) *w = es->w; @@ -305,6 +323,7 @@ E_Container * e_container_shape_container_get(E_Container_Shape *es) { E_OBJECT_CHECK_RETURN(es, NULL); + E_OBJECT_TYPE_CHECK_RETURN(es, E_CONTAINER_SHAPE_TYPE, NULL); return es->con; } @@ -314,6 +333,7 @@ e_container_shape_change_callback_add(E_Container *con, void (*func) (void *data E_Container_Shape_Callback *cb; E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); cb = calloc(1, sizeof(E_Container_Shape_Callback)); if (!cb) return; cb->func = func; @@ -328,6 +348,7 @@ e_container_shape_change_callback_del(E_Container *con, void (*func) (void *data /* FIXME: if we call this from within a callback we are in trouble */ E_OBJECT_CHECK(con); + E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE); for (l = con->shape_change_cb; l; l = l->next) { E_Container_Shape_Callback *cb; @@ -346,6 +367,7 @@ Evas_List * e_container_shape_rects_get(E_Container_Shape *es) { E_OBJECT_CHECK_RETURN(es, NULL); + E_OBJECT_TYPE_CHECK_RETURN(es, E_CONTAINER_SHAPE_TYPE, NULL); return es->shape; } diff --git a/src/bin/e_container.h b/src/bin/e_container.h index c1c82087c..169c6849d 100644 --- a/src/bin/e_container.h +++ b/src/bin/e_container.h @@ -20,6 +20,9 @@ typedef struct _E_Event_Container_Resize E_Event_Container_Resize; #ifndef E_CONTAINER_H #define E_CONTAINER_H +#define E_CONTAINER_TYPE 0xE0b01003 +#define E_CONTAINER_SHAPE_TYPE 0xE0b01004 + struct _E_Container { E_Object e_obj_inherit; diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index e5cd05d18..035f6867a 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -31,8 +31,9 @@ e_desk_new(E_Zone *zone, int x, int y) char name[40]; E_OBJECT_CHECK_RETURN(zone, NULL); + E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL); - desk = E_OBJECT_ALLOC(E_Desk, _e_desk_free); + desk = E_OBJECT_ALLOC(E_Desk, E_DESK_TYPE, _e_desk_free); if (!desk) return NULL; desk->clients = NULL; @@ -47,6 +48,7 @@ void e_desk_name_set(E_Desk *desk, const char *name) { E_OBJECT_CHECK(desk); + E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); if (desk->name) free(desk->name); desk->name = strdup(name); @@ -59,6 +61,7 @@ e_desk_show(E_Desk *desk) int x, y; E_OBJECT_CHECK(desk); + E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); if (desk->visible) return; for (l = desk->zone->container->clients; l; l = l->next) @@ -123,6 +126,7 @@ E_Desk * e_desk_current_get(E_Zone *zone) { E_OBJECT_CHECK_RETURN(zone, NULL); + E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL); return e_desk_at_xy_get(zone, zone->desk_x_current, zone->desk_y_current); } @@ -131,6 +135,7 @@ E_Desk * e_desk_at_xy_get(E_Zone *zone, int x, int y) { E_OBJECT_CHECK_RETURN(zone, NULL); + E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL); if (x >= zone->desk_x_count || y >= zone->desk_y_count) return NULL; @@ -143,8 +148,8 @@ e_desk_xy_get(E_Desk *desk, int *x, int *y) { int xx, yy; - E_OBJECT_CHECK(zone); E_OBJECT_CHECK(desk); + E_OBJECT_TYPE_CHECK(desk, E_DESK_TYPE); for (xx = 0; xx < desk->zone->desk_x_count; xx++) { @@ -171,6 +176,7 @@ e_desk_next(E_Zone *zone) int x, y; E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); if (zone->desk_x_count < 2 && zone->desk_y_count < 2) return; @@ -198,6 +204,7 @@ e_desk_prev(E_Zone *zone) int x, y; E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); if (zone->desk_x_count < 2 && zone->desk_y_count < 2) return; diff --git a/src/bin/e_desk.h b/src/bin/e_desk.h index eb9bc6c7d..009a58923 100644 --- a/src/bin/e_desk.h +++ b/src/bin/e_desk.h @@ -6,6 +6,8 @@ typedef struct _E_Desk E_Desk; #ifndef E_DESK_H #define E_DESK_H +#define E_DESK_TYPE 0xE0b01005 + struct _E_Desk { E_Object e_obj_inherit; diff --git a/src/bin/e_gadman.c b/src/bin/e_gadman.c index a2a9ade06..49af377ca 100644 --- a/src/bin/e_gadman.c +++ b/src/bin/e_gadman.c @@ -102,7 +102,7 @@ e_gadman_new(E_Container *con) { E_Gadman *gm; - gm = E_OBJECT_ALLOC(E_Gadman, _e_gadman_free); + gm = E_OBJECT_ALLOC(E_Gadman, E_GADMAN_TYPE, _e_gadman_free); if (!gm) return NULL; gm->container = con; return gm; @@ -114,6 +114,7 @@ e_gadman_mode_set(E_Gadman *gm, E_Gadman_Mode mode) Evas_List *l; E_OBJECT_CHECK(gm); + E_OBJECT_TYPE_CHECK(gm, E_GADMAN_TYPE); if (gm->mode == mode) return; gm->mode = mode; if (gm->mode == E_GADMAN_MODE_EDIT) @@ -132,6 +133,7 @@ E_Gadman_Mode e_gadman_mode_get(E_Gadman *gm) { E_OBJECT_CHECK_RETURN(gm, E_GADMAN_MODE_NORMAL); + E_OBJECT_TYPE_CHECK_RETURN(gm, E_GADMAN_TYPE, E_GADMAN_MODE_NORMAL); return gm->mode; } @@ -170,8 +172,9 @@ e_gadman_client_new(E_Gadman *gm) { E_Gadman_Client *gmc; E_OBJECT_CHECK_RETURN(gm, NULL); + E_OBJECT_TYPE_CHECK_RETURN(gm, E_GADMAN_TYPE, NULL); - gmc = E_OBJECT_ALLOC(E_Gadman_Client, _e_gadman_client_free); + gmc = E_OBJECT_ALLOC(E_Gadman_Client, E_GADMAN_CLIENT_TYPE, _e_gadman_client_free); if (!gmc) return NULL; gmc->gadman = gm; gmc->policy = E_GADMAN_POLICY_ANYWHERE | E_GADMAN_POLICY_HSIZE | E_GADMAN_POLICY_VSIZE | E_GADMAN_POLICY_HMOVE | E_GADMAN_POLICY_VMOVE; @@ -196,6 +199,7 @@ e_gadman_client_save(E_Gadman_Client *gmc) char buf[1024]; E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); /* save all values */ cf.ax = gmc->ax; cf.ay = gmc->ay; @@ -213,6 +217,7 @@ void e_client_gadman_edge_set(E_Gadman_Client *gmc, E_Gadman_Edge edge) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); gmc->edge = edge; } @@ -223,6 +228,7 @@ e_gadman_client_load(E_Gadman_Client *gmc) char buf[1024]; E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); snprintf(buf, sizeof(buf), "gadman.%s.%i", gmc->domain, gmc->instance); cf = e_config_domain_load(buf, gadman_config_edd); if (cf) @@ -274,6 +280,7 @@ void e_gadman_client_domain_set(E_Gadman_Client *gmc, char *domain, int instance) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); if (gmc->domain) free(gmc->domain); gmc->domain = strdup(domain); gmc->instance = instance; @@ -283,6 +290,7 @@ void e_gadman_client_zone_set(E_Gadman_Client *gmc, E_Zone *zone) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); if (zone == gmc->zone) return; gmc->zone = zone; gmc->x = gmc->zone->x + ((gmc->zone->w - gmc->w) * gmc->ax); @@ -299,6 +307,7 @@ void e_gadman_client_policy_set(E_Gadman_Client *gmc, E_Gadman_Policy pol) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); gmc->policy = pol; } @@ -306,6 +315,7 @@ void e_gadman_client_min_size_set(E_Gadman_Client *gmc, Evas_Coord minw, Evas_Coord minh) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); if ((gmc->minw == minw) && (gmc->minh == minh)) return; gmc->minw = minw; gmc->minh = minh; @@ -326,6 +336,7 @@ void e_gadman_client_max_size_set(E_Gadman_Client *gmc, Evas_Coord maxw, Evas_Coord maxh) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); if ((gmc->maxw == maxw) && (gmc->maxh == maxh)) return; gmc->maxw = maxw; gmc->maxh = maxh; @@ -346,6 +357,7 @@ void e_gadman_client_align_set(E_Gadman_Client *gmc, double xalign, double yalign) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); if ((gmc->ax == xalign) && (gmc->ay == yalign)) return; gmc->ax = xalign; gmc->ay = yalign; @@ -358,6 +370,7 @@ void e_gadman_client_aspect_set(E_Gadman_Client *gmc, double mina, double maxa) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); gmc->mina = mina; gmc->maxa = maxa; } @@ -366,6 +379,7 @@ void e_gadman_client_auto_size_set(E_Gadman_Client *gmc, Evas_Coord autow, Evas_Coord autoh) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); gmc->autow = autow; gmc->autoh = autoh; if (gmc->use_autow) @@ -385,6 +399,7 @@ void e_gadman_client_edge_set(E_Gadman_Client *gmc, E_Gadman_Edge edge) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); gmc->edge = edge; } @@ -392,6 +407,7 @@ E_Gadman_Edge e_gadman_client_edge_get(E_Gadman_Client *gmc) { E_OBJECT_CHECK_RETURN(gmc, E_GADMAN_EDGE_TOP); + E_OBJECT_TYPE_CHECK_RETURN(gmc, E_GADMAN_CLIENT_TYPE, E_GADMAN_EDGE_TOP); return gmc->edge; } @@ -399,6 +415,7 @@ void e_gadman_client_geometry_get(E_Gadman_Client *gmc, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); if (x) *x = gmc->x; if (y) *y = gmc->y; if (w) *w = gmc->w; @@ -409,6 +426,7 @@ void e_gadman_client_resize(E_Gadman_Client *gmc, Evas_Coord w, Evas_Coord h) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); if ((gmc->w == w) && (gmc->h == h)) return; gmc->w = w; if (gmc->w > gmc->zone->w) gmc->w = gmc->zone->w; @@ -423,6 +441,7 @@ void e_gadman_client_change_func_set(E_Gadman_Client *gmc, void (*func) (void *data, E_Gadman_Client *gmc, E_Gadman_Change change), void *data) { E_OBJECT_CHECK(gmc); + E_OBJECT_TYPE_CHECK(gmc, E_GADMAN_CLIENT_TYPE); gmc->func = func; gmc->data = data; } @@ -434,6 +453,7 @@ e_gadman_client_menu_new(E_Gadman_Client *gmc) E_Menu_Item *mi; E_OBJECT_CHECK_RETURN(gmc, NULL); + E_OBJECT_TYPE_CHECK_RETURN(gmc, E_GADMAN_CLIENT_TYPE, NULL); m = e_menu_new(); gmc->menu = m; diff --git a/src/bin/e_gadman.h b/src/bin/e_gadman.h index cac366737..44018e408 100644 --- a/src/bin/e_gadman.h +++ b/src/bin/e_gadman.h @@ -42,6 +42,9 @@ typedef struct _E_Gadman_Client E_Gadman_Client; #ifndef E_GADMAN_H #define E_GADMAN_H +#define E_GADMAN_TYPE 0xE0b01006 +#define E_GADMAN_CLIENT_TYPE 0xE0b01007 + struct _E_Gadman { E_Object e_obj_inherit; diff --git a/src/bin/e_manager.c b/src/bin/e_manager.c index 3d2f0702b..84c37b4a1 100644 --- a/src/bin/e_manager.c +++ b/src/bin/e_manager.c @@ -54,7 +54,7 @@ e_manager_new(Ecore_X_Window root) Ecore_Event_Handler *h; if (!ecore_x_window_manage(root)) return NULL; - man = E_OBJECT_ALLOC(E_Manager, _e_manager_free); + man = E_OBJECT_ALLOC(E_Manager, E_MANAGER_TYPE, _e_manager_free); if (!man) return NULL; managers = evas_list_append(managers, man); man->root = root; @@ -72,6 +72,7 @@ void e_manager_show(E_Manager *man) { E_OBJECT_CHECK(man); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); if (man->visible) return; ecore_x_window_show(man->win); ecore_x_window_focus(man->win); @@ -83,6 +84,7 @@ void e_manager_hide(E_Manager *man) { E_OBJECT_CHECK(man); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); if (!man->visible) return; ecore_x_window_hide(man->win); man->visible = 0; @@ -92,6 +94,7 @@ void e_manager_move(E_Manager *man, int x, int y) { E_OBJECT_CHECK(man); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); if ((x == man->x) && (y == man->y)) return; man->x = x; man->y = y; @@ -104,6 +107,7 @@ e_manager_resize(E_Manager *man, int w, int h) Evas_List *l; E_OBJECT_CHECK(man); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); if ((w == man->w) && (h == man->h)) return; man->w = w; man->h = h; @@ -124,6 +128,7 @@ e_manager_move_resize(E_Manager *man, int x, int y, int w, int h) Evas_List *l; E_OBJECT_CHECK(man); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); if ((x == man->x) && (y == man->y) && (w == man->w) && (h == man->h)) return; man->x = x; man->y = y; @@ -144,6 +149,7 @@ void e_manager_raise(E_Manager *man) { E_OBJECT_CHECK(man); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); ecore_x_window_raise(man->win); e_init_show(); } @@ -152,6 +158,7 @@ void e_manager_lower(E_Manager *man) { E_OBJECT_CHECK(man); + E_OBJECT_TYPE_CHECK(man, E_MANAGER_TYPE); ecore_x_window_lower(man->win); } diff --git a/src/bin/e_manager.h b/src/bin/e_manager.h index f0b38574a..f7c73c60d 100644 --- a/src/bin/e_manager.h +++ b/src/bin/e_manager.h @@ -6,6 +6,8 @@ typedef struct _E_Manager E_Manager; #ifndef E_MANAGER_H #define E_MANAGER_H +#define E_MANAGER_TYPE 0xE0b01008 + struct _E_Manager { E_Object e_obj_inherit; diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c index a260236c0..48bf47b69 100644 --- a/src/bin/e_menu.c +++ b/src/bin/e_menu.c @@ -123,7 +123,7 @@ e_menu_new(void) { E_Menu *m; - m = E_OBJECT_ALLOC(E_Menu, _e_menu_free); + m = E_OBJECT_ALLOC(E_Menu, E_MENU_TYPE, _e_menu_free); if (!m) return NULL; m->cur.w = 1; m->cur.h = 1; @@ -134,7 +134,9 @@ void e_menu_activate_key(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir) { E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); _e_menu_activate_time = 0.0; _e_menu_activate_internal(m, zone); m->cur.x = 200; @@ -148,7 +150,9 @@ e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int d E_Menu_Item *pmi; E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); _e_menu_activate_time = ecore_time_get(); _e_menu_activate_internal(m, zone); m->cur.x = x; @@ -164,7 +168,9 @@ e_menu_activate(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir) E_Menu_Item *pmi; E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); _e_menu_activate_time = 0.0; _e_menu_activate_internal(m, zone); m->cur.x = x; @@ -177,6 +183,7 @@ void e_menu_deactivate(E_Menu *m) { E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); m->cur.visible = 0; m->active = 0; if (m->post_deactivate_cb.func) @@ -187,6 +194,7 @@ int e_menu_freeze(E_Menu *m) { E_OBJECT_CHECK_RETURN(m, 0); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MENU_TYPE, 0); m->frozen++; return m->frozen; } @@ -195,6 +203,7 @@ int e_menu_thaw(E_Menu *m) { E_OBJECT_CHECK_RETURN(m, 0); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MENU_TYPE, 0); m->frozen--; if (m->frozen < 0) m->frozen = 0; return m->frozen; @@ -204,6 +213,7 @@ void e_menu_title_set(E_Menu *m, char *title) { E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); /* FIXME: support menu titles */ if ((m->header.title) && (title) && (!strcmp(m->header.title, title))) return; @@ -221,6 +231,7 @@ void e_menu_icon_file_set(E_Menu *m, char *icon) { E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); /* FIXME: support menu icons */ } @@ -228,6 +239,7 @@ void e_menu_pre_activate_callback_set(E_Menu *m, void (*func) (void *data, E_Menu *m), void *data) { E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); m->pre_activate_cb.func = func; m->pre_activate_cb.data = data; } @@ -236,6 +248,7 @@ void e_menu_post_deactivate_callback_set(E_Menu *m, void (*func) (void *data, E_Menu *m), void *data) { E_OBJECT_CHECK(m); + E_OBJECT_TYPE_CHECK(m, E_MENU_TYPE); m->post_deactivate_cb.func = func; m->post_deactivate_cb.data = data; } @@ -246,6 +259,7 @@ e_menu_root_get(E_Menu *m) E_Menu *ret; E_OBJECT_CHECK_RETURN(m, NULL); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MENU_TYPE, NULL); ret = m; while (ret->parent_item && ret->parent_item->menu) { @@ -261,7 +275,8 @@ e_menu_item_new(E_Menu *m) E_Menu_Item *mi; E_OBJECT_CHECK_RETURN(m, NULL); - mi = E_OBJECT_ALLOC(E_Menu_Item, _e_menu_item_free); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MENU_TYPE, NULL); + mi = E_OBJECT_ALLOC(E_Menu_Item, E_MENU_ITEM_TYPE, _e_menu_item_free); mi->menu = m; mi->menu->items = evas_list_append(mi->menu->items, mi); return mi; @@ -271,6 +286,7 @@ E_Menu_Item * e_menu_item_nth(E_Menu *m, int n) { E_OBJECT_CHECK_RETURN(m, NULL); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MENU_TYPE, NULL); return (E_Menu_Item *)evas_list_nth(m->items, n); } @@ -281,6 +297,7 @@ e_menu_item_num_get(E_Menu_Item *mi) int i; E_OBJECT_CHECK_RETURN(mi, -1); + E_OBJECT_TYPE_CHECK_RETURN(mi, E_MENU_TYPE, -1); for (i = 0, l = mi->menu->items; l; l = l->next, i++) { E_Menu_Item *mi2; @@ -295,6 +312,7 @@ void e_menu_item_icon_file_set(E_Menu_Item *mi, char *icon) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (((mi->icon) && (icon) && (!strcmp(icon, mi->icon))) || ((!mi->icon) && (!icon))) return; @@ -311,6 +329,7 @@ void e_menu_item_icon_edje_set(E_Menu_Item *mi, char *icon, char *key) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (((mi->icon) && (icon) && (!strcmp(icon, mi->icon))) || ((!mi->icon) && (!icon)) || ((key) && (mi->icon_key) && (!strcmp(key, mi->icon_key)))) @@ -329,6 +348,7 @@ void e_menu_item_label_set(E_Menu_Item *mi, char *label) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (((mi->label) && (label) && (!strcmp(label, mi->label))) || ((!mi->label) && (!label))) return; @@ -343,6 +363,7 @@ void e_menu_item_submenu_set(E_Menu_Item *mi, E_Menu *sub) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (mi->submenu) e_object_unref(E_OBJECT(mi->submenu)); e_object_ref(E_OBJECT(sub)); mi->submenu = sub; @@ -354,6 +375,7 @@ void e_menu_item_separator_set(E_Menu_Item *mi, int sep) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (((mi->separator) && (sep)) || ((!mi->separator) && (!sep))) return; mi->separator = sep; @@ -365,6 +387,7 @@ void e_menu_item_check_set(E_Menu_Item *mi, int chk) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (((mi->check) && (chk)) || ((!mi->check) && (!chk))) return; mi->check = chk; @@ -376,6 +399,7 @@ void e_menu_item_radio_set(E_Menu_Item *mi, int rad) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (((mi->radio) && (rad)) || ((!mi->radio) && (!rad))) return; mi->radio = rad; @@ -387,6 +411,7 @@ void e_menu_item_radio_group_set(E_Menu_Item *mi, int radg) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (mi->radio_group == radg) return; mi->radio_group = radg; mi->changed = 1; @@ -397,6 +422,7 @@ void e_menu_item_toggle_set(E_Menu_Item *mi, int tog) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (mi->separator) return; if (tog) { @@ -452,6 +478,7 @@ int e_menu_item_toggle_get(E_Menu_Item *mi) { E_OBJECT_CHECK_RETURN(mi, 0); + E_OBJECT_TYPE_CHECK_RETURN(mi, E_MENU_ITEM_TYPE, 0); return mi->toggle; } @@ -459,6 +486,7 @@ void e_menu_item_callback_set(E_Menu_Item *mi, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), void *data) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); mi->cb.func = func; mi->cb.data = data; } @@ -467,6 +495,7 @@ void e_menu_item_active_set(E_Menu_Item *mi, int active) { E_OBJECT_CHECK(mi); + E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE); if (mi->separator) return; if (active) { diff --git a/src/bin/e_menu.h b/src/bin/e_menu.h index fe9f4e9b5..6bd78c9ba 100644 --- a/src/bin/e_menu.h +++ b/src/bin/e_menu.h @@ -15,6 +15,10 @@ typedef struct _E_Menu_Item E_Menu_Item; #ifndef E_MENU_H #define E_MENU_H +#define E_MENU_TYPE 0xE0b01009 + +#define E_MENU_ITEM_TYPE 0xE0b0100a + struct _E_Menu { E_Object e_obj_inherit; diff --git a/src/bin/e_module.c b/src/bin/e_module.c index 974bd65f5..ff95eb96c 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -79,7 +79,7 @@ e_module_new(char *name) int in_list = 0; if (!name) return NULL; - m = E_OBJECT_ALLOC(E_Module, _e_module_free); + m = E_OBJECT_ALLOC(E_Module, E_MODULE_TYPE, _e_module_free); m->api = &_e_module_api; if (name[0] != '/') { @@ -166,6 +166,7 @@ int e_module_save(E_Module *m) { E_OBJECT_CHECK_RETURN(m, 0); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MODULE_TYPE, 0); return m->func.save(m); } @@ -173,6 +174,7 @@ const char * e_module_dir_get(E_Module *m) { E_OBJECT_CHECK_RETURN(m, NULL); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MODULE_TYPE, 0); return m->dir; } @@ -182,6 +184,7 @@ e_module_enable(E_Module *m) Evas_List *l; E_OBJECT_CHECK_RETURN(m, 0); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MODULE_TYPE, 0); if (m->enabled) return 0; m->data = m->func.init(m); if (m->data) m->enabled = 1; @@ -207,6 +210,7 @@ e_module_disable(E_Module *m) int ret; E_OBJECT_CHECK_RETURN(m, 0); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MODULE_TYPE, 0); if (!m->enabled) return 0; ret = m->func.shutdown(m); m->data = NULL; @@ -230,6 +234,7 @@ int e_module_enabled_get(E_Module *m) { E_OBJECT_CHECK_RETURN(m, 0); + E_OBJECT_TYPE_CHECK_RETURN(m, E_MODULE_TYPE, 0); return m->enabled; } diff --git a/src/bin/e_module.h b/src/bin/e_module.h index 3b2bf0a5c..a96e4ab9d 100644 --- a/src/bin/e_module.h +++ b/src/bin/e_module.h @@ -9,6 +9,8 @@ typedef struct _E_Module_Api E_Module_Api; #ifndef E_MODULE_H #define E_MODULE_H +#define E_MODULE_TYPE 0xE0b0100b + struct _E_Module { E_Object e_obj_inherit; diff --git a/src/bin/e_object.c b/src/bin/e_object.c index 3ad91e13c..6b6909510 100644 --- a/src/bin/e_object.c +++ b/src/bin/e_object.c @@ -28,13 +28,14 @@ static sigjmp_buf _e_object_segv_buf; /* externally accessible functions */ void * -e_object_alloc(int size, E_Object_Cleanup_Func cleanup_func) +e_object_alloc(int size, int type, E_Object_Cleanup_Func cleanup_func) { E_Object *obj; obj = calloc(1, size); if (!obj) return NULL; obj->magic = E_OBJECT_MAGIC; + obj->type = type; obj->references = 1; obj->cleanup_func = cleanup_func; return obj; diff --git a/src/bin/e_object.h b/src/bin/e_object.h index f1d164b86..7190d5613 100644 --- a/src/bin/e_object.h +++ b/src/bin/e_object.h @@ -23,21 +23,27 @@ #define E_OBJECT_MAGIC_FREED 0xe0bf6eed #define E_OBJECT(x) ((E_Object *)(x)) #define E_OBJECT_CLEANUP_FUNC(x) ((E_Object_Cleanup_Func)(x)) -#define E_OBJECT_ALLOC(x, cleanup_func) e_object_alloc(sizeof(x), E_OBJECT_CLEANUP_FUNC(cleanup_func)) +#define E_OBJECT_ALLOC(x, type, cleanup_func) e_object_alloc(sizeof(x), (type), E_OBJECT_CLEANUP_FUNC(cleanup_func)) #define E_OBJECT_DEL_SET(x, del_func) e_object_del_func_set(E_OBJECT(x), E_OBJECT_CLEANUP_FUNC(del_func)) #ifdef OBJECT_PARANOIA_CHECK -# define E_OBJECT_CHECK(x) {if (e_object_error(E_OBJECT(x))) return;} -# define E_OBJECT_CHECK_RETURN(x, ret) {if (e_object_error(E_OBJECT(x))) return ret;} -# define E_OBJECT_IF_NOT_TYPE(x, type) if (E_OBJECT(x)->type != (type)) +# define E_OBJECT_CHECK(x) do {if (e_object_error(E_OBJECT(x))) return;} while (0) +# define E_OBJECT_CHECK_RETURN(x, ret) do {if (e_object_error(E_OBJECT(x))) return ret;} while (0) +# define E_OBJECT_TYPE_CHECK(x, tp) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return;} } while (0) +# define E_OBJECT_TYPE_CHECK_RETURN(x, tp, ret) do {if ((E_OBJECT(x)->type) != tp) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return ret;} } while (0) +# define E_OBJECT_IF_NOT_TYPE(x, tp) if (E_OBJECT(x)->type != (tp)) #else # ifdef OBJECT_CHECK -# define E_OBJECT_CHECK(x) {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return;} -# define E_OBJECT_CHECK_RETURN(x, ret) {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return ret;} +# define E_OBJECT_CHECK(x) do {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return;} while (0) +# define E_OBJECT_CHECK_RETURN(x, ret) do {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return ret;} while (0) +# define E_OBJECT_TYPE_CHECK(x, tp) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return;} } while (0) +# define E_OBJECT_TYPE_CHECK_RETURN(x, tp, ret) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return ret;} } while (0) # define E_OBJECT_IF_NOT_TYPE(x, type) if (E_OBJECT(x)->type != (type)) # else # define E_OBJECT_CHECK(x) # define E_OBJECT_CHECK_RETURN(x, ret) +# define E_OBJECT_TYPE_CHECK(x, type) +# define E_OBJECT_TYPE_CHECK_RETURN(x, type, ret) # define E_OBJECT_IF_NOT_TYPE(x, type) # endif #endif @@ -63,7 +69,7 @@ struct _E_Object unsigned char deleted : 1; }; -EAPI void *e_object_alloc (int size, E_Object_Cleanup_Func cleanup_func); +EAPI void *e_object_alloc (int size, int type, E_Object_Cleanup_Func cleanup_func); EAPI void e_object_del (E_Object *obj); EAPI int e_object_del_get (E_Object *obj); EAPI void e_object_del_func_set (E_Object *obj, E_Object_Cleanup_Func del_func); diff --git a/src/bin/e_path.c b/src/bin/e_path.c index e83aafd2e..20ac7857d 100644 --- a/src/bin/e_path.c +++ b/src/bin/e_path.c @@ -14,7 +14,7 @@ e_path_new(void) { E_Path *ep; - ep = E_OBJECT_ALLOC(E_Path, _e_path_free); + ep = E_OBJECT_ALLOC(E_Path, E_PATH_TYPE, _e_path_free); return ep; } @@ -22,6 +22,7 @@ void e_path_path_append(E_Path *ep, const char *path) { E_OBJECT_CHECK(ep); + E_OBJECT_TYPE_CHECK(ep, E_PATH_TYPE); if (!path) return; if (path[0] == '~') { @@ -53,6 +54,7 @@ void e_path_path_prepend(E_Path *ep, const char *path) { E_OBJECT_CHECK(ep); + E_OBJECT_TYPE_CHECK(ep, E_PATH_TYPE); if (!path) return; if (path[0] == '~') { @@ -86,6 +88,7 @@ e_path_path_remove(E_Path *ep, const char *path) Evas_List *l; E_OBJECT_CHECK(ep); + E_OBJECT_TYPE_CHECK(ep, E_PATH_TYPE); if (!path) return; if (path[0] == '~') { @@ -151,6 +154,7 @@ e_path_find(E_Path *ep, const char *file) char *str; E_OBJECT_CHECK_RETURN(ep, NULL); + E_OBJECT_TYPE_CHECK_RETURN(ep, E_PATH_TYPE, NULL); if (!file) return NULL; _e_path_buf[0] = 0; str = evas_hash_find(ep->hash, file); @@ -189,6 +193,7 @@ e_path_evas_append(E_Path *ep, Evas *evas) Evas_List *l; E_OBJECT_CHECK(ep); + E_OBJECT_TYPE_CHECK(ep, E_PATH_TYPE); if (!evas) return; for (l = ep->dir_list; l; l = l->next) { diff --git a/src/bin/e_path.h b/src/bin/e_path.h index 686104a68..300cdf4fa 100644 --- a/src/bin/e_path.h +++ b/src/bin/e_path.h @@ -6,6 +6,8 @@ typedef struct _E_Path E_Path; #ifndef E_PATH_H #define E_PATH_H +#define E_PATH_TYPE 0xE0b0100c + struct _E_Path { E_Object e_obj_inherit; diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index aa3bcfefb..877a1e3d5 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -39,7 +39,7 @@ e_zone_new(E_Container *con, int x, int y, int w, int h) E_Zone *zone; int i; - zone = E_OBJECT_ALLOC(E_Zone, _e_zone_free); + zone = E_OBJECT_ALLOC(E_Zone, E_ZONE_TYPE, _e_zone_free); if (!zone) return NULL; zone->container = con; @@ -105,6 +105,7 @@ void e_zone_name_set(E_Zone *zone, const char *name) { E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); if (zone->name) free(zone->name); zone->name = strdup(name); @@ -114,6 +115,7 @@ void e_zone_move(E_Zone *zone, int x, int y) { E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); if ((x == zone->x) && (y == zone->y)) return; zone->x = x; @@ -127,6 +129,7 @@ void e_zone_resize(E_Zone *zone, int w, int h) { E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); if ((w == zone->w) && (h == zone->h)) return; zone->w = w; @@ -140,6 +143,7 @@ void e_zone_move_resize(E_Zone *zone, int x, int y, int w, int h) { E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); if ((x == zone->x) && (y == zone->y) && (w == zone->w) && (h == zone->h)) return; @@ -164,6 +168,7 @@ e_zone_current_get(E_Container *con) E_Border *bd; E_OBJECT_CHECK_RETURN(con, NULL); + E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL); bd = e_border_focused_get(); if (bd) { @@ -195,6 +200,7 @@ e_zone_bg_reconfigure(E_Zone *zone) Evas_Object *o; E_OBJECT_CHECK(zone); + E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE); o = zone->bg_object; evas_object_hide(o); edje_object_file_set(o, @@ -207,8 +213,9 @@ e_zone_bg_reconfigure(E_Zone *zone) Evas_List * e_zone_clients_list_get(E_Zone *zone) { - E_OBJECT_CHECK_RETURN(zone, NULL); - return zone->clients; + E_OBJECT_CHECK_RETURN(zone, NULL); + E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL); + return zone->clients; } diff --git a/src/bin/e_zone.h b/src/bin/e_zone.h index 61e800283..1268415aa 100644 --- a/src/bin/e_zone.h +++ b/src/bin/e_zone.h @@ -8,6 +8,8 @@ typedef struct _E_Event_Zone_Desk_Count_Set E_Event_Zone_Desk_Count_Set; #ifndef E_ZONE_H #define E_ZONE_H +#define E_ZONE_TYPE 0xE0b0100d + struct _E_Zone { E_Object e_obj_inherit;