balsa r7940 - in trunk: . libbalsa
- From: PeterB svn gnome org
- To: svn-commits-list gnome org
- Subject: balsa r7940 - in trunk: . libbalsa
- Date: Thu, 5 Jun 2008 21:14:17 +0000 (UTC)
Author: PeterB
Date: Thu Jun 5 21:14:16 2008
New Revision: 7940
URL: http://svn.gnome.org/viewvc/balsa?rev=7940&view=rev
Log:
new method libbalsa_mailbox_index_entry_clear
Modified:
trunk/ChangeLog
trunk/libbalsa/mailbox.c
trunk/libbalsa/mailbox.h
trunk/libbalsa/mailbox_imap.c
Modified: trunk/libbalsa/mailbox.c
==============================================================================
--- trunk/libbalsa/mailbox.c (original)
+++ trunk/libbalsa/mailbox.c Thu Jun 5 21:14:16 2008
@@ -350,8 +350,8 @@
}
#endif /*BALSA_USE_THREADS */
-void
-libbalsa_mailbox_index_entry_free(LibBalsaMailboxIndexEntry *entry)
+static void
+lbm_index_entry_free(LibBalsaMailboxIndexEntry *entry)
{
if(entry) {
#ifdef BALSA_USE_THREADS
@@ -365,6 +365,22 @@
}
}
+void
+libbalsa_mailbox_index_entry_clear(LibBalsaMailbox * mailbox, guint msgno)
+{
+ g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
+ g_return_if_fail(msgno > 0);
+
+ if (msgno <= mailbox->mindex->len) {
+ LibBalsaMailboxIndexEntry **entry = (LibBalsaMailboxIndexEntry **)
+ & g_ptr_array_index(mailbox->mindex, msgno - 1);
+ lbm_index_entry_free(*entry);
+ *entry = NULL;
+
+ libbalsa_mailbox_msgno_changed(mailbox, msgno);
+ }
+}
+
#ifdef BALSA_USE_THREADS
# define VALID_ENTRY(entry) \
((entry) && !((LibBalsaMailboxIndexEntry *) (entry))->idle_pending)
@@ -497,8 +513,7 @@
unsigned i;
/* we could have used g_ptr_array_foreach but it is >=2.4.0 */
for(i=0; i<mailbox->mindex->len; i++)
- libbalsa_mailbox_index_entry_free
- (g_ptr_array_index(mailbox->mindex, i));
+ lbm_index_entry_free(g_ptr_array_index(mailbox->mindex, i));
g_ptr_array_free(mailbox->mindex, TRUE);
mailbox->mindex = NULL;
}
@@ -1334,8 +1349,8 @@
decrease_post, &dt);
if (seqno <= mailbox->mindex->len) {
- libbalsa_mailbox_index_entry_free(g_ptr_array_index(mailbox->mindex,
- seqno - 1));
+ lbm_index_entry_free(g_ptr_array_index(mailbox->mindex,
+ seqno - 1));
g_ptr_array_remove_index(mailbox->mindex, seqno - 1);
}
@@ -4269,26 +4284,19 @@
g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
if (!mailbox->mindex)
return;
+ g_return_if_fail(msgno > 0);
+ g_return_if_fail(LIBBALSA_IS_MESSAGE(message));
+
+ if (mailbox->mindex->len < msgno)
+ g_ptr_array_set_size(mailbox->mindex, msgno);
+
+ entry = g_ptr_array_index(mailbox->mindex, msgno - 1);
- if (message) {
- while (mailbox->mindex->len < msgno)
- g_ptr_array_add(mailbox->mindex, NULL);
-
- entry = g_ptr_array_index(mailbox->mindex, msgno - 1);
-
- if (!entry)
- g_ptr_array_index(mailbox->mindex, msgno - 1) =
- libbalsa_mailbox_index_entry_new_from_msg(message);
+ if (!entry)
+ g_ptr_array_index(mailbox->mindex, msgno - 1) =
+ libbalsa_mailbox_index_entry_new_from_msg(message);
#if BALSA_USE_THREADS
- else if (entry->idle_pending)
- lbm_index_entry_populate_from_msg(entry, message);
+ else if (entry->idle_pending)
+ lbm_index_entry_populate_from_msg(entry, message);
#endif /* BALSA_USE_THREADS */
- else
- return;
- } else if (msgno <= mailbox->mindex->len) {
- libbalsa_mailbox_index_entry_free(g_ptr_array_index
- (mailbox->mindex, msgno - 1));
- g_ptr_array_index(mailbox->mindex, msgno - 1) = NULL;
- libbalsa_mailbox_msgno_changed(mailbox, msgno);
- }
}
Modified: trunk/libbalsa/mailbox.h
==============================================================================
--- trunk/libbalsa/mailbox.h (original)
+++ trunk/libbalsa/mailbox.h Thu Jun 5 21:14:16 2008
@@ -500,7 +500,8 @@
(LibBalsaMessage *msg);
void libbalsa_mailbox_index_entry_set_no(LibBalsaMailboxIndexEntry *entry,
unsigned no);
-void libbalsa_mailbox_index_entry_free(LibBalsaMailboxIndexEntry *entry);
+void libbalsa_mailbox_index_entry_clear(LibBalsaMailbox * mailbox,
+ guint msgno);
void libbalsa_mailbox_index_set_flags(LibBalsaMailbox *mailbox,
unsigned msgno, LibBalsaMessageFlag f);
gboolean libbalsa_mailbox_set_view_filter(LibBalsaMailbox * mailbox,
Modified: trunk/libbalsa/mailbox_imap.c
==============================================================================
--- trunk/libbalsa/mailbox_imap.c (original)
+++ trunk/libbalsa/mailbox_imap.c Thu Jun 5 21:14:16 2008
@@ -802,7 +802,7 @@
g_free(msgid);
g_ptr_array_index(mimap->msgids, i) = NULL;
}
- libbalsa_mailbox_cache_message(mailbox, i + 1, NULL);
+ libbalsa_mailbox_index_entry_clear(mailbox, i + 1);
}
for(i=mimap->messages_info->len; i>cnt; i--) {
g_array_remove_index(mimap->messages_info, i-1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]