diff --git a/src/stkutil.c b/src/stkutil.c index 6dabd237..351235ef 100644 --- a/src/stkutil.c +++ b/src/stkutil.c @@ -2112,11 +2112,11 @@ static gboolean parse_display_text(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_display_text; + if (ret == FALSE) return FALSE; - command->destructor = destroy_display_text; - return TRUE; } @@ -2150,11 +2150,11 @@ static gboolean parse_get_inkey(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_get_inkey; + if (ret == FALSE) return FALSE; - command->destructor = destroy_get_inkey; - return TRUE; } @@ -2192,11 +2192,11 @@ static gboolean parse_get_input(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_get_input; + if (ret == FALSE) return FALSE; - command->destructor = destroy_get_input; - return TRUE; } @@ -2243,11 +2243,11 @@ static gboolean parse_play_tone(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_play_tone; + if (ret == FALSE) return FALSE; - command->destructor = destroy_play_tone; - return TRUE; } @@ -2271,8 +2271,6 @@ static gboolean parse_poll_interval(struct stk_command *command, if (ret == FALSE) return FALSE; - command->destructor = NULL; - return TRUE; } @@ -2323,10 +2321,12 @@ static gboolean parse_setup_menu(struct stk_command *command, gboolean ret; if (command->src != STK_DEVICE_IDENTITY_TYPE_UICC) - goto error; + return FALSE; if (command->dst != STK_DEVICE_IDENTITY_TYPE_TERMINAL) - goto error; + return FALSE; + + command->destructor = destroy_setup_menu; ret = parse_dataobj(iter, STK_DATA_OBJECT_TYPE_ALPHA_ID, @@ -2335,12 +2335,12 @@ static gboolean parse_setup_menu(struct stk_command *command, STK_DATA_OBJECT_TYPE_INVALID); if (ret == FALSE) - goto error; + return FALSE; obj->items = parse_item_list(iter); if (obj->items == NULL) - goto error; + return FALSE; ret = parse_dataobj(iter, STK_DATA_OBJECT_TYPE_ITEMS_NEXT_ACTION_INDICATOR, 0, @@ -2356,15 +2356,9 @@ static gboolean parse_setup_menu(struct stk_command *command, STK_DATA_OBJECT_TYPE_INVALID); if (ret == FALSE) - goto error; - - command->destructor = destroy_setup_menu; + return FALSE; return TRUE; - -error: - destroy_setup_menu(command); - return FALSE; } static void destroy_select_item(struct stk_command *command) @@ -2542,11 +2536,11 @@ static gboolean parse_setup_call(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_setup_call; + if (ret == FALSE) return FALSE; - command->destructor = destroy_setup_call; - return TRUE; } @@ -2583,11 +2577,11 @@ static gboolean parse_refresh(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_refresh; + if (ret == FALSE) return FALSE; - command->destructor = destroy_refresh; - return TRUE; } @@ -2766,11 +2760,11 @@ static gboolean parse_setup_idle_mode_text(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_setup_idle_mode_text; + if (ret == FALSE) return FALSE; - command->destructor = destroy_setup_idle_mode_text; - return TRUE; } @@ -2805,11 +2799,11 @@ static gboolean parse_run_at_command(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_run_at_command; + if (ret == FALSE) return FALSE; - command->destructor = destroy_run_at_command; - return TRUE; } @@ -2844,11 +2838,11 @@ static gboolean parse_send_dtmf(struct stk_command *command, &obj->frame_id, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_send_dtmf; + if (ret == FALSE) return FALSE; - command->destructor = destroy_send_dtmf; - return TRUE; } @@ -2963,11 +2957,11 @@ static gboolean parse_launch_browser(struct stk_command *command, &obj->text_passwd, STK_DATA_OBJECT_TYPE_INVALID); + command->destructor = destroy_launch_browser; + if (ret == FALSE) return FALSE; - command->destructor = destroy_launch_browser; - return TRUE; error: