Changeset 3675
- Timestamp:
- 05/20/08 18:30:15
- Files:
-
- trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.c (modified) (2 diffs)
- trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.h (modified) (1 diff)
- trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c (modified) (2 diffs)
- trunk/libtinymail-camel/camel-lite/camel/providers/local/camel-local-summary.c (modified) (1 diff)
- trunk/libtinymail-camel/camel-lite/camel/providers/local/camel-mbox-summary.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.c
r3570 r3675 347 347 g_ptr_array_foreach (s->expunged, foreach_msginfo, (gpointer)s->message_info_size); 348 348 349 /* camel_folder_summary_clear(s); */350 349 g_ptr_array_free(s->messages, TRUE); 351 350 g_ptr_array_free(s->expunged, TRUE); … … 1623 1622 } 1624 1623 1624 void 1625 camel_folder_summary_dispose_all (CamelFolderSummary *s) 1626 { 1627 int i; 1628 1629 if (s->messages && s->messages->len > 0) 1630 { 1631 GPtrArray *items = g_ptr_array_sized_new (s->messages->len); 1632 1633 CAMEL_SUMMARY_LOCK(s, summary_lock); 1634 g_static_rec_mutex_lock (&global_lock); 1635 1636 for (i=0; i<s->messages->len; i++) { 1637 CamelMessageInfo *info = (CamelMessageInfo *) s->messages->pdata[i]; 1638 CamelMessageInfoBase *mi = (CamelMessageInfoBase *) s->messages->pdata[i]; 1639 1640 mi->flags |= CAMEL_MESSAGE_EXPUNGED; 1641 mi->flags |= CAMEL_MESSAGE_FREED; 1642 destroy_possible_pstring_stuff (s, info, FALSE); 1643 mi->subject = "Expunged"; 1644 mi->to = "Expunged"; 1645 mi->from = "Expunged"; 1646 mi->cc = "Expunged"; 1647 1648 g_ptr_array_add (items, info); 1649 } 1650 1651 for (i=0; i<items->len; i++) { 1652 CamelMessageInfo *info = (CamelMessageInfo *) items->pdata[i]; 1653 g_ptr_array_remove(s->messages, info); 1654 g_ptr_array_add (s->expunged, info); 1655 } 1656 1657 s->had_expunges = TRUE; 1658 s->flags |= CAMEL_SUMMARY_DIRTY; 1659 1660 g_static_rec_mutex_unlock (&global_lock); 1661 CAMEL_SUMMARY_UNLOCK(s, summary_lock); 1662 1663 g_ptr_array_free (items, TRUE); 1664 1665 } 1666 } 1625 1667 1626 1668 /** trunk/libtinymail-camel/camel-lite/camel/camel-folder-summary.h
r3635 r3675 410 410 void camel_folder_summary_unlock (); 411 411 412 void camel_folder_summary_dispose_all (CamelFolderSummary *s); 413 412 414 G_END_DECLS 413 415 trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c
r3674 r3675 624 624 else if (validity != imap_summary->validity) { 625 625 imap_summary->validity = validity; 626 camel_folder_summary_ clear(folder->summary);626 camel_folder_summary_dispose_all (folder->summary); 627 627 CAMEL_IMAP_FOLDER_REC_LOCK (imap_folder, cache_lock); 628 628 camel_imap_message_cache_clear (imap_folder->cache); … … 3370 3370 } 3371 3371 3372 for (i=0; i<folder->summary->messages->len; i++) { 3373 CamelMessageInfo *ri = (CamelMessageInfo *) folder->summary->messages->pdata[i]; 3374 ((CamelMessageInfoBase*)ri)->flags |= CAMEL_MESSAGE_EXPUNGED; 3375 ((CamelMessageInfoBase*)ri)->flags |= CAMEL_MESSAGE_FREED; 3376 camel_folder_summary_remove (folder->summary, ri); 3377 } 3378 3372 camel_folder_summary_dispose_all (folder->summary); 3379 3373 3380 3374 tcnt = cnt = imap_get_uids (folder, store, ex, needheaders, (exists - seq) - tcnt); trunk/libtinymail-camel/camel-lite/camel/providers/local/camel-local-summary.c
r3453 r3675 163 163 } 164 164 165 /* if (forceindex166 || g_stat(s->summary_path, &st) == -1167 || ((CamelLocalSummaryClass *)(CAMEL_OBJECT_GET_CLASS(cls)))->load(cls, forceindex, ex) == -1) {168 w(g_warning("Could not load summary: flags may be reset"));169 camel_folder_summary_clear((CamelFolderSummary *)cls);170 return -1;171 }*/172 173 165 return 0; 174 166 } trunk/libtinymail-camel/camel-lite/camel/providers/local/camel-mbox-summary.c
r3258 r3675 553 553 /* check if the summary is up-to-date */ 554 554 if (g_stat(cls->folder_path, &st) == -1) { 555 camel_folder_summary_ clear(s);555 camel_folder_summary_dispose_all (s); 556 556 camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM, 557 557 _("Cannot check folder: %s: %s"), … … 576 576 } 577 577 } 578 camel_folder_summary_ clear(s);578 camel_folder_summary_dispose_all (s); 579 579 ret = 0; 580 580 } else {
