evolution-exchange r1696 - in trunk: . camel



Author: abharath
Date: Mon Jul 21 09:46:30 2008
New Revision: 1696
URL: http://svn.gnome.org/viewvc/evolution-exchange?rev=1696&view=rev

Log:
2008-07-21  Sankar P  <psankar novell com>

        Fixes Exchange related crashes due to DB Summary merge

        * camel/camel-exchange-folder.c: (search_by_expression),
        (camel_exchange_folder_construct):
        * camel/camel-exchange-search.c: (exchange_body_contains):


Modified:
   trunk/ChangeLog
   trunk/camel/camel-exchange-folder.c
   trunk/camel/camel-exchange-search.c

Modified: trunk/camel/camel-exchange-folder.c
==============================================================================
--- trunk/camel/camel-exchange-folder.c	(original)
+++ trunk/camel/camel-exchange-folder.c	Mon Jul 21 09:46:30 2008
@@ -45,6 +45,7 @@
 #include <camel/camel-session.h>
 #include <camel/camel-stream-filter.h>
 #include <camel/camel-stream-mem.h>
+#include <camel/camel-folder-summary.h>
 
 static CamelOfflineFolderClass *parent_class = NULL;
 
@@ -470,7 +471,7 @@
 	camel_folder_search_set_folder (search, folder);
 	summary = camel_folder_get_summary (folder);
 	camel_folder_search_set_summary (search, summary);
-	matches = camel_folder_search_execute_expression (search, expression, ex);
+	matches = camel_folder_search_search (search, expression, NULL, ex);
 	camel_folder_free_summary (folder, summary);
 
 	if (matches) {
@@ -1082,8 +1083,8 @@
 			camel_folder_summary_reload_from_db (folder->summary, ex);
 		
 		for (i = 0; i < summary->len; i++) {
-			info = summary->pdata[i];
-			uids->pdata[i] = (char *)camel_message_info_uid (info);
+			uids->pdata[i] = g_strdup(summary->pdata[i]);
+			info = camel_folder_summary_uid (folder->summary, uids->pdata[i]);
 			flags->data[i] = ((CamelMessageInfoBase *)info)->flags & CAMEL_EXCHANGE_SERVER_FLAGS;
 			hrefs->pdata[i] = ((CamelExchangeMessageInfo *)info)->href;
 			//camel_tag_list_free (&((CamelMessageInfoBase *)info)->user_tags);

Modified: trunk/camel/camel-exchange-search.c
==============================================================================
--- trunk/camel/camel-exchange-search.c	(original)
+++ trunk/camel/camel-exchange-search.c	Mon Jul 21 09:46:30 2008
@@ -26,6 +26,7 @@
 #include <string.h>
 
 #include <camel/camel-offline-store.h>
+#include <camel/camel-folder-summary.h>
 
 #include "camel-exchange-search.h"
 #include "camel-exchange-folder.h"
@@ -99,8 +100,7 @@
 			r->value.bool = TRUE;
 		else {
 			for (i = 0; i < s->summary->len; i++) {
-				CamelMessageInfo *info = s->summary->pdata[i];
-				g_ptr_array_add (r->value.ptrarray, (char *)camel_message_info_uid (info));
+				g_ptr_array_add (r->value.ptrarray, s->summary->pdata[i]);
 			}
 		}
 		return r;
@@ -140,8 +140,8 @@
 
 		uid_hash = g_hash_table_new (g_str_hash, g_str_equal);
 		for (i = 0; i < s->summary->len; i++) {
-			info = s->summary->pdata[i];
-			g_hash_table_insert (uid_hash, (char *)camel_message_info_uid (info), info);
+			info = camel_folder_summary_uid (s->folder->summary, s->summary->pdata[i]);
+			g_hash_table_insert (uid_hash, s->summary->pdata[i], info);
 		}
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]