Fixed prevent issues
authorKim Jinho <jinho912.kim@samsung.com>
Sat, 12 Jan 2013 06:44:12 +0000 (15:44 +0900)
committerKim Jinho <jinho912.kim@samsung.com>
Sat, 12 Jan 2013 06:44:12 +0000 (15:44 +0900)
mailbox/src/email-mailbox-list.c
setting/src/email-view-account-setup.c
setting/src/email-view-sync-schedule.c

index ee411be..275e551 100755 (executable)
@@ -248,11 +248,10 @@ static void _get_more_clicked_cb(void *data, Evas_Object *obj, void *event_info)
                return;
        }
 
-       email_mailbox_t *mailbox_list = NULL;
        email_account_t *account_list = NULL;
-       int mailbox_count = 0, account_count = 0;
+       int account_count = 0;
        int new_slot_size = 0;
-       int i = 0, j = 0;
+       int i = 0, j = 0, err = 0;
 
        if (g_get_more_progress_item || mailbox_ugd->view_type != EMAIL_VIEW_DATE) {
                debug_log("is_get_more_button exists or download in progress");
@@ -265,7 +264,13 @@ static void _get_more_clicked_cb(void *data, Evas_Object *obj, void *event_info)
                return;
        }
 
-       email_get_account_list(&account_list, &account_count);
+       err = email_get_account_list(&account_list, &account_count);
+       if (err != EMAIL_ERROR_NONE || !account_list) {
+               email_free_account(&account_list, account_count);
+               debug_critical("email_get_account_list error Err(%d)", err);
+               return;
+       }
+
        _add_get_more_progress_item(mailbox_ugd);
        _stop_emf_job(mailbox_ugd, mailbox_ugd->emf_handle, true);
 
@@ -273,20 +278,35 @@ static void _get_more_clicked_cb(void *data, Evas_Object *obj, void *event_info)
        if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL) {
                /* loop: All account */
                for (i = 0; i < account_count; ++i) {
-                       email_get_mailbox_list(account_list[i].account_id, -1, &mailbox_list, &mailbox_count);
+                       email_mailbox_t *mailbox_list = NULL;
+                       int mailbox_count = 0;
+                       err = email_get_mailbox_list(account_list[i].account_id, -1, &mailbox_list, &mailbox_count);
+                       if(err != EMAIL_ERROR_NONE || !mailbox_list) {
+                               email_free_mailbox(&mailbox_list, mailbox_count);
+                               email_free_account(&account_list, account_count);
+                               debug_critical("email_get_mailbox_list error Err(%d)", err);
+                               return;
+                       }
                        /* loop: All Mailbox */
                        for (j = 0; j < mailbox_count; ++j) {
                                new_slot_size = 0;
                                email_set_mail_slot_size(account_list[i].account_id, mailbox_list[j].mailbox_id, new_slot_size);
-                               debug_log("account_id: [%d], mailbox_name: [%s], slot_size: [%d]", account_list[i].account_id, mailbox_list[j].mailbox_name, new_slot_size);
+                               debug_log("account_id: [%d], mailbox_id: [%d], slot_size: [%d]", account_list[i].account_id, mailbox_list[j].mailbox_id, new_slot_size);
                        }
                        email_free_mailbox(&mailbox_list, mailbox_count);
                }
 
                _sync_all_folder(mailbox_ugd);
        } else {                        /* mailbox mode */
-
-               email_get_mailbox_list(mailbox_ugd->account_id, -1, &mailbox_list, &mailbox_count);
+               email_mailbox_t *mailbox_list = NULL;
+               int mailbox_count = 0;
+               err = email_get_mailbox_list(mailbox_ugd->account_id, -1, &mailbox_list, &mailbox_count);
+               if(err != EMAIL_ERROR_NONE || !mailbox_list) {
+                       email_free_mailbox(&mailbox_list, mailbox_count);
+                       email_free_account(&account_list, account_count);
+                       debug_critical("email_get_mailbox_list error Err(%d)", err);
+                       return;
+               }
                for (i = 0; i < mailbox_count; ++i) {
                        if (mailbox_list[i].mailbox_id == mailbox_ugd->mailbox_id) {
                                new_slot_size = 0;
@@ -295,6 +315,7 @@ static void _get_more_clicked_cb(void *data, Evas_Object *obj, void *event_info)
                }
                email_set_mail_slot_size(mailbox_ugd->account_id, mailbox_ugd->mailbox_id, new_slot_size);
                debug_log("account_id: [%d], mailbox_id: [%d], slot_size: [%d]", mailbox_ugd->account_id, mailbox_ugd->mailbox_id, new_slot_size);
+               email_free_mailbox(&mailbox_list, mailbox_count);
                _sync_curr_folder(mailbox_ugd, mailbox_ugd->mailbox_id);
        }
        //elm_object_disabled_set(mailbox_ugd->update_button, EINA_TRUE);
@@ -305,8 +326,10 @@ static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd)
 {
        debug_log("");
 
-       evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb);
-       b_enable_get_more = false;
+       if(b_enable_get_more) {
+               evas_object_smart_callback_del(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb);
+               b_enable_get_more = false;
+       }
 
        itc_get_more_progress.item_style = "1text.1icon.2";
        itc_get_more_progress.func.text_get = _gl_get_more_btn_text_get;
@@ -326,8 +349,11 @@ static void _add_get_more_progress_item(EmailMailboxUGD *mailbox_ugd)
        elm_genlist_item_select_mode_set(g_get_more_progress_item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        elm_genlist_item_bring_in(g_get_more_progress_item, ELM_GENLIST_ITEM_SCROLLTO_IN);
 
-       evas_object_smart_callback_add(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb, mailbox_ugd);
-       b_enable_get_more = true;
+
+       if(b_enable_get_more == false) {
+               evas_object_smart_callback_add(mailbox_ugd->gl[mailbox_ugd->view_type], "edge,bottom", _get_more_clicked_cb, mailbox_ugd);
+               b_enable_get_more = true;
+       }
 
        debug_leave();
 }
@@ -1317,6 +1343,7 @@ static void _list_item_clicked(void *data, Evas_Object *obj, void *event_info)
                email_mailbox_t *mbox = NULL;
                int e = email_get_mailbox_by_mailbox_id(ld->mailbox_id, &mbox);
                if (e != EMAIL_ERROR_NONE) {
+                       email_free_mailbox(&mbox, 1);
                        debug_log(" email_get_mailbox_by_mailbox_id mailbox_id(%d)- err[%d]", ld->mailbox_id, e);
                        return;
                }
index 11ab3d8..5ed1183 100755 (executable)
@@ -265,6 +265,11 @@ static int _destroy(struct viewdata *vd)
        evas_object_del(p->genlist);
        evas_object_del(p->tool_btn);
 
+       if (p->str_password) {
+               g_free(p->str_password);
+               p->str_password = NULL;
+       }
+
        if (ugd->password_timer) {
                ecore_timer_del(ugd->password_timer);
                ugd->password_timer = NULL;
index 0485931..3f2f796 100755 (executable)
@@ -649,6 +649,7 @@ static void _refresh_cb(void *data, Evas_Object *obj, void *event_info)
        email_mailbox_t *mailbox = NULL;
        ret = email_get_mailbox_by_mailbox_type(account_id, EMAIL_MAILBOX_TYPE_INBOX, &mailbox);
        if (ret != EMAIL_ERROR_NONE || mailbox == NULL || mailbox->mailbox_name == NULL) {
+               email_free_mailbox(&mailbox, 1);
                debug_log("email_get_mailbox_by_mailbox_type failed");
                return;
        }