Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2007-10-04 21:28:39 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2007-10-04 21:28:39 (GMT)
commitff9cbcf0866ce9afae0176b03d44fbb2da780a8c (patch)
tree8d7d64f496af67d0daa8d3a45c6e080531dad714 /backend
parent49172d645c265e3fd301ca15f75adb17c7337331 (diff)
Silently ignore unknown form fields. Fixes bug #482654. Patch by Matthias
2007-10-04 Carlos Garcia Campos <carlosgc@gnome.org> * backend/pdf/ev-poppler.cc: (ev_form_field_from_poppler_field), (pdf_document_forms_get_form_fields): Silently ignore unknown form fields. Fixes bug #482654. Patch by Matthias Drochner. svn path=/trunk/; revision=2692
Diffstat (limited to 'backend')
-rw-r--r--backend/pdf/ev-poppler.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index 13be06f..9ccfd22 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -2053,7 +2053,7 @@ ev_form_field_from_poppler_field (PopplerFormField *poppler_field)
ev_field = ev_form_field_signature_new (id);
break;
case POPPLER_FORM_FIELD_UNKNOWN:
- break;
+ return NULL;
}
ev_field->font_size = font_size;
@@ -2072,7 +2072,6 @@ pdf_document_forms_get_form_fields (EvDocumentForms *document,
GList *fields;
GList *list;
double height;
-
pdf_document = PDF_DOCUMENT (document);
poppler_page = poppler_document_get_page (pdf_document->document, page);
@@ -2082,19 +2081,25 @@ pdf_document_forms_get_form_fields (EvDocumentForms *document,
for (list = fields; list; list = list->next) {
PopplerFormFieldMapping *mapping;
EvFormFieldMapping *field_mapping;
-
+ EvFormField *ev_field;
+
mapping = (PopplerFormFieldMapping *)list->data;
+ ev_field = ev_form_field_from_poppler_field (mapping->field);
+ if (!ev_field)
+ continue;
+
field_mapping = g_new0 (EvFormFieldMapping, 1);
field_mapping->x1 = mapping->area.x1;
field_mapping->x2 = mapping->area.x2;
field_mapping->y1 = height - mapping->area.y2;
field_mapping->y2 = height - mapping->area.y1;
- field_mapping->field = ev_form_field_from_poppler_field (mapping->field);
+ field_mapping->field = ev_field;
field_mapping->field->page = page;
retval = g_list_prepend (retval, field_mapping);
}
+
poppler_page_free_form_field_mapping (fields);
g_object_unref (poppler_page);