From 185249b6bd22565e120e63ea34848a18d86814c9 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sun, 1 Dec 2013 18:50:45 +0100 Subject: [PATCH] use more safety macros on Termio *sd --- src/bin/termio.c | 280 ++++++++++++++++++++++------------------------- 1 file changed, 131 insertions(+), 149 deletions(-) diff --git a/src/bin/termio.c b/src/bin/termio.c index 1001e28e..116861b4 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -401,7 +401,7 @@ _cb_link_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void { Evas_Event_Mouse_Up *ev = event; Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if ((ev->button == 1) && (sd->link.down.down)) { @@ -426,8 +426,8 @@ _cb_link_drag_move(void *data, Evas_Object *obj, Evas_Coord x, Evas_Coord y, Elm { const Evas_Modifier *em = NULL; Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; - + EINA_SAFETY_ON_NULL_RETURN(sd); + printf("dnd %i %i act %i\n", x, y, action); em = evas_key_modifier_get(evas_object_evas_get(sd->event)); if (em) @@ -443,8 +443,8 @@ static void _cb_link_drag_accept(void *data, Evas_Object *obj EINA_UNUSED, Eina_Bool doaccept) { Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; - + EINA_SAFETY_ON_NULL_RETURN(sd); + printf("dnd accept: %i\n", doaccept); } @@ -452,8 +452,8 @@ static void _cb_link_drag_done(void *data, Evas_Object *obj EINA_UNUSED) { Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; - + EINA_SAFETY_ON_NULL_RETURN(sd); + printf("dnd done\n"); sd->link.down.dnd = EINA_FALSE; if ((sd->link.down.dndobjdel) && (sd->link.down.dndobj)) @@ -466,8 +466,8 @@ _cb_link_icon_new(void *data, Evas_Object *par, Evas_Coord *xoff, Evas_Coord *yo { Evas_Object *icon; Termio *sd = evas_object_smart_data_get(data); - if (!sd) return NULL; - + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); + icon = elm_button_add(par); elm_object_text_set(icon, sd->link.string); *xoff = 0; @@ -482,7 +482,7 @@ _cb_link_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event) Evas_Event_Mouse_Move *ev = event; Termio *sd = evas_object_smart_data_get(data); Evas_Coord dx, dy; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (!sd->link.down.down) return; dx = abs(ev->cur.canvas.x - sd->link.down.x); @@ -522,7 +522,7 @@ static void _update_link(Evas_Object *obj, Termio *sd, Eina_Bool same_link, Eina_Bool same_geom) { - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (!same_link) { @@ -654,7 +654,7 @@ _smart_mouseover_apply(Evas_Object *obj) Eina_Bool same_link = EINA_FALSE, same_geom = EINA_FALSE; Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if ((sd->mouse.cx < 0) || (sd->mouse.cy < 0) || (sd->link.suspend) || (!evas_object_focus_get(obj))) { @@ -693,7 +693,7 @@ _smart_mouseover_delay(void *data) { Termio *sd = evas_object_smart_data_get(data); - if (!sd) return EINA_FALSE; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); sd->mouseover_delay = NULL; _smart_mouseover_apply(data); return EINA_FALSE; @@ -768,8 +768,8 @@ _block_edje_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *sig, char *buf = NULL, *chid = NULL; int buflen = 0; Eina_List *l; - - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); if ((!blk->chid) || (!sd->cur_chids)) return; EINA_LIST_FOREACH(sd->cur_chids, l, chid) { @@ -811,8 +811,8 @@ _block_edje_message_cb(void *data, Evas_Object *obj EINA_UNUSED, Edje_Message_Ty char *chid = NULL, buf[4096]; Eina_List *l; int buflen; - - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); if ((!blk->chid) || (!sd->cur_chids)) return; EINA_LIST_FOREACH(sd->cur_chids, l, chid) { @@ -1199,8 +1199,8 @@ _block_edje_activate(Evas_Object *obj, Termblock *blk) { Termio *sd = evas_object_smart_data_get(obj); Eina_Bool ok = EINA_FALSE; - - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); if ((!blk->path) || (!blk->link)) return; blk->obj = edje_object_add(evas_object_evas_get(obj)); if (blk->path[0] == '/') @@ -1241,8 +1241,8 @@ _block_media_activate(Evas_Object *obj, Termblock *blk) Termio *sd = evas_object_smart_data_get(obj); int type = 0; int media = MEDIA_STRETCH; - - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); if (blk->scale_stretch) media = MEDIA_STRETCH; else if (blk->scale_center) media = MEDIA_POP; else if (blk->scale_fill) media = MEDIA_BG; @@ -1267,7 +1267,8 @@ static void _block_activate(Evas_Object *obj, Termblock *blk) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); if (blk->active) return; blk->active = EINA_TRUE; if (blk->obj) return; @@ -1287,7 +1288,7 @@ _smart_apply(Evas_Object *obj) Termblock *blk; int j, x, y, w, ch1 = 0, ch2 = 0, inv = 0; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); evas_object_geometry_get(obj, &ox, &oy, &ow, &oh); EINA_LIST_FOREACH(sd->pty->block.active, l, blk) @@ -1629,7 +1630,7 @@ static void _smart_size(Evas_Object *obj, int w, int h, Eina_Bool force) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (w < 1) w = 1; if (h < 1) h = 1; @@ -1663,7 +1664,7 @@ _smart_cb_delayed_size(void *data) Evas_Coord ow = 0, oh = 0; int w, h; - if (!sd) return EINA_FALSE; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); sd->delayed_size_timer = NULL; evas_object_geometry_get(obj, NULL, NULL, &ow, &oh); @@ -1678,9 +1679,9 @@ static Eina_Bool _smart_cb_change(void *data) { Evas_Object *obj = data; - Termio *sd; - sd = evas_object_smart_data_get(obj); - if (!sd) return EINA_FALSE; + Termio *sd = evas_object_smart_data_get(obj); + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); sd->anim = NULL; _smart_apply(obj); evas_object_smart_callback_call(obj, "changed", NULL); @@ -1698,7 +1699,8 @@ static void _lost_selection_reset_job(void *data) { Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); + sd->sel_reset_job = NULL; elm_cnp_selection_set(sd->win, sd->sel_type, ELM_SEL_FORMAT_TEXT, @@ -1839,7 +1841,8 @@ static Eina_Bool _getsel_cb(void *data, Evas_Object *obj EINA_UNUSED, Elm_Selection_Data *ev) { Termio *sd = evas_object_smart_data_get(data); - if (!sd) return EINA_FALSE; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); if (ev->format == ELM_SEL_FORMAT_TEXT) { @@ -1881,7 +1884,7 @@ _font_size_set(Evas_Object *obj, int size) { Termio *sd = evas_object_smart_data_get(obj); Config *config = termio_config_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (size < 5) size = 5; else if (size > 100) size = 100; @@ -1914,10 +1917,11 @@ termio_grid_size_set(Evas_Object *obj, int w, int h) { Termio *sd = evas_object_smart_data_get(obj); Evas_Coord mw = 1, mh = 1; - + + EINA_SAFETY_ON_NULL_RETURN(sd); + if (w < 1) w = 1; if (h < 1) h = 1; - if (!sd) return; evas_object_size_hint_min_get(obj, &mw, &mh); evas_object_data_del(obj, "sizedone"); evas_object_size_hint_request_set(obj, mw * w, mh * h); @@ -1927,10 +1931,9 @@ static void _smart_cb_key_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) { Evas_Event_Key_Up *ev = event; - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); - sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); sd->last_keyup = ev->timestamp; if (sd->imf) { @@ -2038,12 +2041,11 @@ _smart_cb_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) { Evas_Event_Key_Down *ev = event; - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); Ecore_Compose_State state; char *compres = NULL; - sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if ((!evas_key_modifier_is_set(ev->modifiers, "Alt")) && (evas_key_modifier_is_set(ev->modifiers, "Control")) && (!evas_key_modifier_is_set(ev->modifiers, "Shift"))) @@ -2284,10 +2286,9 @@ static void _smart_cb_focus_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) { - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); + EINA_SAFETY_ON_NULL_RETURN(sd); - sd = evas_object_smart_data_get(data); - if (!sd) return; if (sd->config->disable_cursor_blink) edje_object_signal_emit(sd->cursor.obj, "focus,in,noblink", "terminology"); else @@ -2307,10 +2308,8 @@ static void _smart_cb_focus_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED) { - Termio *sd; - - sd = evas_object_smart_data_get(data); - if (!sd) return; + Termio *sd = evas_object_smart_data_get(data); + EINA_SAFETY_ON_NULL_RETURN(sd); if (sd->link.ctxpopup) return; /* ctxp triggers focus out we should ignore */ @@ -2331,16 +2330,10 @@ static void _smart_xy_to_cursor(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *cx, int *cy) { - Termio *sd; + Termio *sd = evas_object_smart_data_get(obj); + EINA_SAFETY_ON_NULL_RETURN(sd); Evas_Coord ox, oy; - sd = evas_object_smart_data_get(obj); - if (!sd) - { - *cx = 0; - *cy = 0; - return; - } evas_object_geometry_get(obj, &ox, &oy, NULL, NULL); *cx = (x - ox) / sd->font.chw; *cy = (y - oy) / sd->font.chh; @@ -2357,7 +2350,7 @@ _sel_line(Evas_Object *obj, int cx EINA_UNUSED, int cy) Termio *sd = evas_object_smart_data_get(obj); Termcell *cells; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); termpty_cellcomp_freeze(sd->pty); @@ -2419,7 +2412,7 @@ _sel_word(Evas_Object *obj, int cx, int cy) int x, y, w = 0; Eina_Bool done = EINA_FALSE; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); termpty_cellcomp_freeze(sd->pty); @@ -2522,7 +2515,7 @@ _sel_word_to(Evas_Object *obj, int cx, int cy) Termio *sd = evas_object_smart_data_get(obj); int start_x, start_y, end_x, end_y; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); start_x = sd->pty->selection.start.x; start_y = sd->pty->selection.start.y; @@ -2880,12 +2873,11 @@ _selection_dbl_fix(Evas_Object *obj ) { #if defined(SUPPORT_DBLWIDTH) - Termio *sd; + Termio *sd = evas_object_smart_data_get(obj); int w = 0; Termcell *cells; - - sd = evas_object_smart_data_get(obj); - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); termpty_cellcomp_freeze(sd->pty); cells = termpty_cellrow_get(sd->pty, sd->pty->selection.end.y - sd->scroll, &w); if (cells) @@ -2980,10 +2972,9 @@ _selection_newline_extend_fix(Evas_Object *obj) static void _smart_cb_mouse_move_job(void *data) { - Termio *sd; - - sd = evas_object_smart_data_get(data); - if (!sd) return; + Termio *sd = evas_object_smart_data_get(data); + + EINA_SAFETY_ON_NULL_RETURN(sd); sd->mouse_move_job = NULL; if (sd->mouseover_delay) ecore_timer_del(sd->mouseover_delay); sd->mouseover_delay = ecore_timer_add(0.05, _smart_mouseover_delay, data); @@ -3029,15 +3020,14 @@ static void _smart_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) { Evas_Event_Mouse_Down *ev = event; - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); int cx, cy; int shift, ctrl; + EINA_SAFETY_ON_NULL_RETURN(sd); + shift = evas_key_modifier_is_set(ev->modifiers, "Shift"); ctrl = evas_key_modifier_is_set(ev->modifiers, "Control"); - - sd = evas_object_smart_data_get(data); - if (!sd) return; _smart_xy_to_cursor(data, ev->canvas.x, ev->canvas.y, &cx, &cy); sd->didclick = EINA_FALSE; if ((ev->button == 3) && ctrl) @@ -3166,15 +3156,15 @@ static void _smart_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) { Evas_Event_Mouse_Up *ev = event; - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); int cx, cy; int shift, ctrl; + EINA_SAFETY_ON_NULL_RETURN(sd); + shift = evas_key_modifier_is_set(ev->modifiers, "Shift"); ctrl = evas_key_modifier_is_set(ev->modifiers, "Control"); - sd = evas_object_smart_data_get(data); - if (!sd) return; _smart_xy_to_cursor(data, ev->canvas.x, ev->canvas.y, &cx, &cy); if (!shift && !ctrl) if (_rep_mouse_up(sd, ev, cx, cy)) return; @@ -3257,7 +3247,7 @@ static void _smart_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) { Evas_Event_Mouse_Move *ev = event; - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); int cx, cy; Evas_Coord ox, oy; Eina_Bool scroll = EINA_FALSE; @@ -3266,8 +3256,7 @@ _smart_cb_mouse_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUS shift = evas_key_modifier_is_set(ev->modifiers, "Shift"); ctrl = evas_key_modifier_is_set(ev->modifiers, "Control"); - sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); evas_object_geometry_get(data, &ox, &oy, NULL, NULL); cx = (ev->cur.canvas.x - ox) / sd->font.chw; @@ -3357,7 +3346,7 @@ _smart_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Event_Mouse_In *ev = event; Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); _smart_xy_to_cursor(data, ev->canvas.x, ev->canvas.y, &cx, &cy); sd->mouse.cx = cx; sd->mouse.cy = cy; @@ -3368,11 +3357,10 @@ static void _smart_cb_mouse_out(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event) { - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); Evas_Event_Mouse_Out *ev = event; - sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (sd->link.ctxpopup) return; /* ctxp triggers mouse out we should ignore */ @@ -3402,10 +3390,10 @@ static void _smart_cb_mouse_wheel(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event) { Evas_Event_Mouse_Wheel *ev = event; - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); + + EINA_SAFETY_ON_NULL_RETURN(sd); - sd = evas_object_smart_data_get(data); - if (!sd) return; if (evas_key_modifier_is_set(ev->modifiers, "Control")) return; if (evas_key_modifier_is_set(ev->modifiers, "Alt")) return; if (evas_key_modifier_is_set(ev->modifiers, "Shift")) return; @@ -3496,10 +3484,9 @@ _smart_cb_mouse_wheel(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU static void _win_obj_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED) { - Termio *sd; + Termio *sd = evas_object_smart_data_get(data); - sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (obj == sd->win) { evas_object_event_callback_del_full(sd->win, EVAS_CALLBACK_DEL, @@ -3556,10 +3543,8 @@ termio_config_set(Evas_Object *obj, Config *config) static void _cursor_cb_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) { - Termio *sd; - - sd = evas_object_smart_data_get(data); - if (!sd) return; + Termio *sd = evas_object_smart_data_get(data); + EINA_SAFETY_ON_NULL_RETURN(sd); _imf_cursor_set(sd); } @@ -3568,8 +3553,8 @@ _smart_cb_gest_long_move(void *data, void *event EINA_UNUSED) { // Elm_Gesture_Taps_Info *p = event; Termio *sd = evas_object_smart_data_get(data); - - if (!sd) return EVAS_EVENT_FLAG_ON_HOLD; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EVAS_EVENT_FLAG_ON_HOLD); evas_object_smart_callback_call(data, "options", NULL); sd->didclick = EINA_TRUE; return EVAS_EVENT_FLAG_ON_HOLD; @@ -3581,8 +3566,8 @@ _smart_cb_gest_zoom_start(void *data, void *event) Elm_Gesture_Zoom_Info *p = event; Termio *sd = evas_object_smart_data_get(data); Config *config = termio_config_get(data); - - if (!sd) return EVAS_EVENT_FLAG_ON_HOLD; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EVAS_EVENT_FLAG_ON_HOLD); if (config) { int sz; @@ -3601,8 +3586,8 @@ _smart_cb_gest_zoom_move(void *data, void *event) Elm_Gesture_Zoom_Info *p = event; Termio *sd = evas_object_smart_data_get(data); Config *config = termio_config_get(data); - - if (!sd) return EVAS_EVENT_FLAG_ON_HOLD; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EVAS_EVENT_FLAG_ON_HOLD); if (config) { int sz = (double)sd->zoom_fontsize_start * @@ -3619,8 +3604,8 @@ _smart_cb_gest_zoom_end(void *data, void *event) Elm_Gesture_Zoom_Info *p = event; Termio *sd = evas_object_smart_data_get(data); Config *config = termio_config_get(data); - - if (!sd) return EVAS_EVENT_FLAG_ON_HOLD; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EVAS_EVENT_FLAG_ON_HOLD); if (config) { int sz = (double)sd->zoom_fontsize_start * @@ -3637,8 +3622,8 @@ _smart_cb_gest_zoom_abort(void *data, void *event EINA_UNUSED) // Elm_Gesture_Zoom_Info *p = event; Termio *sd = evas_object_smart_data_get(data); Config *config = termio_config_get(data); - - if (!sd) return EVAS_EVENT_FLAG_ON_HOLD; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EVAS_EVENT_FLAG_ON_HOLD); if (config) { if (sd->zoom_fontsize_start != config->font.size) @@ -3797,7 +3782,7 @@ _smart_del(Evas_Object *obj) Termio *sd = evas_object_smart_data_get(obj); char *chid; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); terms = eina_list_remove(terms, obj); EINA_LIST_FREE(sd->mirrors, o) { @@ -3863,7 +3848,8 @@ _smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h) { Termio *sd = evas_object_smart_data_get(obj); Evas_Coord ow, oh; - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); evas_object_geometry_get(obj, NULL, NULL, &ow, &oh); if ((ow == w) && (oh == h)) return; evas_object_smart_changed(obj); @@ -3879,7 +3865,7 @@ _smart_calculate(Evas_Object *obj) Termio *sd = evas_object_smart_data_get(obj); Evas_Coord ox, oy, ow, oh; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); evas_object_geometry_get(obj, &ox, &oy, &ow, &oh); evas_object_move(sd->grid.obj, ox, oy); @@ -3897,7 +3883,8 @@ static void _smart_move(Evas_Object *obj, Evas_Coord x EINA_UNUSED, Evas_Coord y EINA_UNUSED) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); evas_object_smart_changed(obj); } @@ -3921,10 +3908,8 @@ _smart_init(void) static void _smart_pty_change(void *data) { - Evas_Object *obj = data; - Termio *sd; - sd = evas_object_smart_data_get(obj); - if (!sd) return; + Termio *sd = evas_object_smart_data_get(data); + EINA_SAFETY_ON_NULL_RETURN(sd); // if scroll to bottom on updates if (sd->jump_on_change) sd->scroll = 0; @@ -3934,11 +3919,10 @@ _smart_pty_change(void *data) void termio_scroll(Evas_Object *obj, int direction, int start_y, int end_y) { - Termio *sd; Termpty *ty; + Termio *sd = evas_object_smart_data_get(obj); - sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if ((!sd->jump_on_change) && // if NOT scroll to bottom on updates (sd->scroll > 0)) @@ -3971,12 +3955,11 @@ void termio_content_change(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int n) { - Termio *sd; Termpty *ty; int start_x, start_y, end_x, end_y; + Termio *sd = evas_object_smart_data_get(obj); - sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); ty = sd->pty; if (!ty->selection.is_active) return; @@ -4033,9 +4016,9 @@ static void _smart_pty_title(void *data) { Evas_Object *obj = data; - Termio *sd; - sd = evas_object_smart_data_get(obj); - if (!sd) return; + Termio *sd = evas_object_smart_data_get(obj); + + EINA_SAFETY_ON_NULL_RETURN(sd); if (!sd->win) return; evas_object_smart_callback_call(obj, "title,change", NULL); // elm_win_title_set(sd->win, sd->pty->prop.title); @@ -4045,9 +4028,9 @@ static void _smart_pty_icon(void *data) { Evas_Object *obj = data; - Termio *sd; - sd = evas_object_smart_data_get(obj); - if (!sd) return; + Termio *sd = evas_object_smart_data_get(obj); + + EINA_SAFETY_ON_NULL_RETURN(sd); if (!sd->win) return; evas_object_smart_callback_call(obj, "icon,change", NULL); // elm_win_icon_name_set(sd->win, sd->pty->prop.icon); @@ -4057,9 +4040,9 @@ static void _smart_pty_cancel_sel(void *data) { Evas_Object *obj = data; - Termio *sd; - sd = evas_object_smart_data_get(obj); - if (!sd) return; + Termio *sd = evas_object_smart_data_get(obj); + + EINA_SAFETY_ON_NULL_RETURN(sd); if (sd->pty->selection.is_active) { _sel_set(obj, EINA_FALSE); @@ -4078,7 +4061,8 @@ static void _smart_pty_bell(void *data) { Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); evas_object_smart_callback_call(data, "bell", NULL); edje_object_signal_emit(sd->cursor.obj, "bell", "terminology"); } @@ -4088,7 +4072,8 @@ _smart_pty_command(void *data) { Evas_Object *obj = data; Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + + EINA_SAFETY_ON_NULL_RETURN(sd); if (!sd->pty->cur_cmd) return; if (sd->pty->cur_cmd[0] == 'i') { @@ -4355,7 +4340,8 @@ _smart_cb_drop(void *data, Evas_Object *o EINA_UNUSED, Elm_Selection_Data *ev) { Evas_Object *obj = data; Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return EINA_TRUE; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_TRUE); if (ev->action == ELM_XDND_ACTION_COPY) { if (strchr(ev->data, '\n')) @@ -4419,7 +4405,7 @@ termio_add(Evas_Object *parent, Config *config, const char *cmd, Eina_Bool login if (!_smart) _smart_init(); obj = evas_object_smart_add(e, _smart); sd = evas_object_smart_data_get(obj); - if (!sd) return obj; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, obj); termio_config_set(obj, config); @@ -4483,7 +4469,7 @@ void termio_win_set(Evas_Object *obj, Evas_Object *win) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (sd->win) { evas_object_event_callback_del_full(sd->win, EVAS_CALLBACK_DEL, @@ -4502,7 +4488,7 @@ void termio_theme_set(Evas_Object *obj, Evas_Object *theme) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (theme) sd->theme = theme; } @@ -4510,7 +4496,7 @@ Evas_Object * termio_theme_get(Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); return sd->theme; } @@ -4524,7 +4510,7 @@ termio_selection_get(Evas_Object *obj, int c1x, int c1y, int c2x, int c2y, int x, y; size_t len_backup; - if (!sd) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); sb = eina_strbuf_new(); termpty_cellcomp_freeze(sd->pty); for (y = c1y; y <= c2y; y++) @@ -4673,7 +4659,7 @@ termio_config_update(Evas_Object *obj) Evas_Coord w, h; char buf[4096]; - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); if (sd->font.name) eina_stringshare_del(sd->font.name); sd->font.name = NULL; @@ -4745,7 +4731,7 @@ void termio_mouseover_suspend_pushpop(Evas_Object *obj, int dir) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); sd->link.suspend += dir; if (sd->link.suspend < 0) sd->link.suspend = 0; if (sd->link.suspend) @@ -4764,7 +4750,7 @@ termio_event_feed_mouse_in(Evas_Object *obj) Evas *e; Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); e = evas_object_evas_get(obj); evas_event_feed_mouse_in(e, 0, NULL); } @@ -4773,12 +4759,7 @@ void termio_size_get(Evas_Object *obj, int *w, int *h) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) - { - if (w) *w = 0; - if (h) *h = 0; - return; - } + EINA_SAFETY_ON_NULL_RETURN(sd); if (w) *w = sd->grid.w; if (h) *h = sd->grid.h; } @@ -4787,7 +4768,7 @@ int termio_scroll_get(Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return 0; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, 0); return sd->scroll; } @@ -4795,7 +4776,7 @@ pid_t termio_pid_get(const Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return 0; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, 0); return termpty_pid_get(sd->pty); } @@ -4807,7 +4788,7 @@ termio_cwd_get(const Evas_Object *obj, char *buf, size_t size) pid_t pid; ssize_t siz; - if (!sd) return EINA_FALSE; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, EINA_FALSE); pid = termpty_pid_get(sd->pty); snprintf(procpath, sizeof(procpath), "/proc/%d/cwd", pid); @@ -4825,7 +4806,7 @@ Evas_Object * termio_textgrid_get(Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); return sd->grid.obj; } @@ -4834,7 +4815,7 @@ Evas_Object * termio_win_get(Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); return sd->win; } @@ -4844,7 +4825,7 @@ static void _smart_mirror_del(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj, void *info EINA_UNUSED) { Termio *sd = evas_object_smart_data_get(data); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL, _smart_mirror_del, data); sd->mirrors = eina_list_remove(sd->mirrors, obj); @@ -4856,7 +4837,8 @@ termio_mirror_add(Evas_Object *obj) Evas_Object *img; Termio *sd = evas_object_smart_data_get(obj); Evas_Coord w = 0, h = 0; - if (!sd) return NULL; + + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); img = evas_object_image_filled_add(evas_object_evas_get(obj)); evas_object_image_source_set(img, obj); evas_object_geometry_get(obj, NULL, NULL, &w, &h); @@ -4872,7 +4854,7 @@ const char * termio_title_get(Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); return sd->pty->prop.title; } @@ -4880,7 +4862,7 @@ const char * termio_icon_name_get(Evas_Object *obj) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return NULL; + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); return sd->pty->prop.icon; } @@ -4888,7 +4870,7 @@ void termio_debugwhite_set(Evas_Object *obj, Eina_Bool dbg) { Termio *sd = evas_object_smart_data_get(obj); - if (!sd) return; + EINA_SAFETY_ON_NULL_RETURN(sd); sd->debugwhite = dbg; _smart_apply(obj); }