summaryrefslogtreecommitdiff
path: root/src/tracker-extract/tracker-extract-epub.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracker-extract/tracker-extract-epub.c')
-rw-r--r--src/tracker-extract/tracker-extract-epub.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/tracker-extract/tracker-extract-epub.c b/src/tracker-extract/tracker-extract-epub.c
index 40d9fdcb9..64b0859f3 100644
--- a/src/tracker-extract/tracker-extract-epub.c
+++ b/src/tracker-extract/tracker-extract-epub.c
@@ -551,7 +551,6 @@ extract_opf_contents (const gchar *uri,
GList *content_files)
{
OPFContentData content_data = { 0 };
- GMarkupParseContext *context;
TrackerConfig *config;
GError *error = NULL;
GList *l;
@@ -562,7 +561,6 @@ extract_opf_contents (const gchar *uri,
};
config = tracker_main_get_config ();
- context = g_markup_parse_context_new (&xml_parser, 0, &content_data, NULL);
content_data.contents = g_string_new ("");
content_data.limit = (gsize) tracker_config_get_max_bytes (config);
@@ -570,28 +568,30 @@ extract_opf_contents (const gchar *uri,
g_debug ("Extracting up to %" G_GSIZE_FORMAT " bytes of content", content_data.limit);
for (l = content_files; l; l = l->next) {
+ GMarkupParseContext *context;
gchar *path;
+ context = g_markup_parse_context_new (&xml_parser, 0, &content_data, NULL);
+
/* Page file is relative to OPF file location */
path = g_build_filename (content_prefix, l->data, NULL);
tracker_gsf_parse_xml_in_zip (uri, path, context, &error);
if (error) {
- g_warning ("Error extracting EPUB contents (%s): %s\n",
- path, error->message);
- g_free (path);
- break;
+ g_warning ("Error extracting EPUB contents (%s): %s",
+ path, error->message);
+ g_clear_error (&error);
}
g_free (path);
+ g_markup_parse_context_free (context);
+
if (content_data.limit <= 0) {
/* Reached plain text extraction limit */
break;
}
}
- g_markup_parse_context_free (context);
-
return g_string_free (content_data.contents, FALSE);
}