[evince] pdf: Fix saving annotations added to different pages



commit e35a76afc2c8353a8146c051f7e0912c481ade6a
Author: Daniel GlÃckner <daniel-gl gmx net>
Date:   Mon Aug 29 16:41:29 2011 +0200

    pdf: Fix saving annotations added to different pages
    
    Fixes bug #628378.

 backend/pdf/ev-poppler.cc |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)
---
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index 753fedc..ff9c561 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -2858,16 +2858,21 @@ pdf_document_annotations_add_annotation (EvDocumentAnnotations *document_annotat
 	if (pdf_document->annots) {
 		mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots,
 								     GINT_TO_POINTER (page->index));
+	} else {
+		pdf_document->annots = g_hash_table_new_full (g_direct_hash,
+							      g_direct_equal,
+							      (GDestroyNotify)NULL,
+							      (GDestroyNotify)ev_mapping_list_unref);
+		mapping_list = NULL;
+	}
+
+	if (mapping_list) {
 		list = ev_mapping_list_get_list (mapping_list);
 		name = g_strdup_printf ("annot-%d-%d", page->index, g_list_length (list) + 1);
 		ev_annotation_set_name (annot, name);
 		g_free (name);
 		list = g_list_append (list, annot_mapping);
 	} else {
-		pdf_document->annots = g_hash_table_new_full (g_direct_hash,
-							      g_direct_equal,
-							      (GDestroyNotify)NULL,
-							      (GDestroyNotify)ev_mapping_list_unref);
 		name = g_strdup_printf ("annot-%d-0", page->index);
 		ev_annotation_set_name (annot, name);
 		g_free (name);



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