Blob Blame History Raw
diff -up evolution-3.8.5/e-util/e-table-memory-store.c.crash-customize-mail-view evolution-3.8.5/e-util/e-table-memory-store.c
--- evolution-3.8.5/e-util/e-table-memory-store.c.crash-customize-mail-view	2013-07-23 14:52:06.000000000 +0200
+++ evolution-3.8.5/e-util/e-table-memory-store.c	2014-08-25 17:30:33.996172102 +0200
@@ -109,7 +109,7 @@ etms_value_at (ETableModel *etm,
 {
 	ETableMemoryStore *etms = E_TABLE_MEMORY_STORE (etm);
 
-	return STORE_LOCATOR (etms, col, row);
+	return duplicate_value (etms, col, STORE_LOCATOR (etms, col, row));
 }
 
 static void
@@ -122,6 +122,8 @@ etms_set_value_at (ETableModel *etm,
 
 	e_table_model_pre_change (etm);
 
+	if (val != STORE_LOCATOR (etms, col, row))
+		free_value (etms, col, STORE_LOCATOR (etms, col, row));
 	STORE_LOCATOR (etms, col, row) = duplicate_value (etms, col, val);
 
 	e_table_model_cell_changed (etm, col, row);