balsa r7862 - in branches/mailbox-gsequence: . libbalsa
- From: PeterB svn gnome org
- To: svn-commits-list gnome org
- Subject: balsa r7862 - in branches/mailbox-gsequence: . libbalsa
- Date: Wed, 20 Feb 2008 13:31:31 +0000 (GMT)
Author: PeterB
Date: Wed Feb 20 13:31:31 2008
New Revision: 7862
URL: http://svn.gnome.org/viewvc/balsa?rev=7862&view=rev
Log:
mindex changes
Modified:
branches/mailbox-gsequence/ChangeLog
branches/mailbox-gsequence/libbalsa/mailbox.c
Modified: branches/mailbox-gsequence/libbalsa/mailbox.c
==============================================================================
--- branches/mailbox-gsequence/libbalsa/mailbox.c (original)
+++ branches/mailbox-gsequence/libbalsa/mailbox.c Wed Feb 20 13:31:31 2008
@@ -385,17 +385,19 @@
}
void
-libbalsa_mailbox_index_set_flags(LibBalsaMailbox *mailbox,
- unsigned msgno, LibBalsaMessageFlag f)
-{
- LibBalsaMailboxIndexEntry *entry =
- libbalsa_mailbox_get_index_entry(mailbox, msgno);
-
- if (VALID_ENTRY(entry)) {
- entry->status_icon =
- libbalsa_get_icon_from_flags(f);
- entry->unseen = f & LIBBALSA_MESSAGE_FLAG_NEW;
- libbalsa_mailbox_msgno_changed(mailbox, msgno);
+libbalsa_mailbox_index_set_flags(LibBalsaMailbox * mailbox,
+ unsigned msgno,
+ LibBalsaMessageFlag f)
+{
+ if (mailbox->msg_tree) {
+ LibBalsaMailboxIndexEntry *entry =
+ libbalsa_mailbox_get_index_entry(mailbox, msgno);
+
+ if (VALID_ENTRY(entry)) {
+ entry->status_icon = libbalsa_get_icon_from_flags(f);
+ entry->unseen = f & LIBBALSA_MESSAGE_FLAG_NEW;
+ libbalsa_mailbox_msgno_changed(mailbox, msgno);
+ }
}
}
@@ -535,9 +537,6 @@
LibBalsaMailboxState saved_state;
mailbox->stamp++;
- if(mailbox->mindex) g_warning("mindex set - I leak memory");
- mailbox->mindex =
- g_array_new(FALSE, TRUE, sizeof(LibBalsaMailboxIndex));
saved_state = mailbox->state;
mailbox->state = LB_MAILBOX_STATE_OPENING;
@@ -1555,7 +1554,6 @@
GSequenceIter *node;
g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
- g_return_if_fail(seqno > 0 && seqno <= mailbox->mindex->len);
g_signal_emit(mailbox, libbalsa_mailbox_signals[MESSAGE_EXPUNGED],
0, seqno);
@@ -1567,6 +1565,12 @@
return;
}
+ if (seqno == 0 || seqno > mailbox->mindex->len) {
+ g_warning("Message number %u out of range", seqno);
+ gdk_threads_leave();
+ return;
+ }
+
lbm_index = LBM_INDEX(mailbox, seqno);
libbalsa_mailbox_index_entry_free(lbm_index->entry);
@@ -3799,6 +3803,9 @@
if (!mailbox->msg_tree)
mailbox->msg_tree =
g_sequence_new((GDestroyNotify) lbm_node_info_free);
+ if (!mailbox->mindex)
+ mailbox->mindex =
+ g_array_new(FALSE, TRUE, sizeof(LibBalsaMailboxIndex));
lbm_update_msg_tree(mailbox, new_tree);
g_node_destroy(new_tree);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]