486 lines
17 KiB
Diff
486 lines
17 KiB
Diff
--- evince-40.1/backend/dvi/mdvi-lib/pagesel.c
|
|
+++ evince-40.1/backend/dvi/mdvi-lib/pagesel.c
|
|
@@ -209,6 +209,7 @@ DviPageSpec *mdvi_parse_page_spec(const
|
|
range = mdvi_parse_range(format, NULL, &count, &ptr);
|
|
if(ptr == format) {
|
|
if(range) mdvi_free(range);
|
|
+ mdvi_free(spec);
|
|
mdvi_error(_("invalid page specification `%s'\n"), format);
|
|
return NULL;
|
|
}
|
|
--- evince-40.1/backend/dvi/mdvi-lib/tfmfile.c
|
|
+++ evince-40.1/backend/dvi/mdvi-lib/tfmfile.c
|
|
@@ -393,6 +393,7 @@ static int ofm1_load_file(FILE *in, TFMI
|
|
/* read them in one sweep */
|
|
if(fread(tfm, 4, size, in) != size) {
|
|
mdvi_free(tfm);
|
|
+ tfm = NULL;
|
|
goto bad_tfm;
|
|
}
|
|
|
|
--- evince-40.1/backend/dvi/mdvi-lib/vf.c
|
|
+++ evince-40.1/backend/dvi/mdvi-lib/vf.c
|
|
@@ -129,6 +129,7 @@ static int vf_load_font(DviParams *param
|
|
if(ref == NULL) {
|
|
mdvi_error(_("(vf) %s: could not load font `%s'\n"),
|
|
font->fontname, name);
|
|
+ mdvi_free(name);
|
|
goto error;
|
|
}
|
|
mdvi_free(name);
|
|
--- evince-40.1/backend/comics/comics-document.c
|
|
+++ evince-40.1/backend/comics/comics-document.c
|
|
@@ -453,23 +453,27 @@ comics_document_render_pixbuf (EvDocumen
|
|
|
|
name = ev_archive_get_entry_pathname (comics_document->archive);
|
|
if (g_strcmp0 (name, page_path) == 0) {
|
|
- size_t size = ev_archive_get_entry_size (comics_document->archive);
|
|
+ gint64 size = ev_archive_get_entry_size (comics_document->archive);
|
|
char *buf;
|
|
ssize_t read;
|
|
|
|
- buf = g_malloc (size);
|
|
- read = ev_archive_read_data (comics_document->archive, buf, size, &error);
|
|
- if (read <= 0) {
|
|
- if (read < 0) {
|
|
- g_warning ("Fatal error reading '%s' in archive: %s", name, error->message);
|
|
- g_error_free (error);
|
|
+ if (size < 0) {
|
|
+ g_warning ("Wrong size of entry '%s'.", name);
|
|
+ } else {
|
|
+ buf = g_malloc (size);
|
|
+ read = ev_archive_read_data (comics_document->archive, buf, size, &error);
|
|
+ if (read <= 0) {
|
|
+ if (read < 0) {
|
|
+ g_warning ("Fatal error reading '%s' in archive: %s", name, error->message);
|
|
+ g_error_free (error);
|
|
+ } else {
|
|
+ g_warning ("Read an empty file from the archive");
|
|
+ }
|
|
} else {
|
|
- g_warning ("Read an empty file from the archive");
|
|
+ gdk_pixbuf_loader_write (loader, (guchar *) buf, size, NULL);
|
|
}
|
|
- } else {
|
|
- gdk_pixbuf_loader_write (loader, (guchar *) buf, size, NULL);
|
|
+ g_free (buf);
|
|
}
|
|
- g_free (buf);
|
|
gdk_pixbuf_loader_close (loader, NULL);
|
|
break;
|
|
}
|
|
--- evince-40.1/backend/pdf/ev-poppler.cc
|
|
+++ evince-40.1/backend/pdf/ev-poppler.cc
|
|
@@ -591,7 +591,7 @@ pdf_document_get_xmptag_from_path (xmlXP
|
|
const char* xpath)
|
|
{
|
|
xmlXPathObjectPtr xpathObj;
|
|
- char *xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", xpath);
|
|
+ char *xmpmetapath;
|
|
xmlChar *result = NULL;
|
|
|
|
/* add pdf/a and pdf/x namespaces */
|
|
@@ -620,13 +620,17 @@ pdf_document_get_xmptag_from_path (xmlXP
|
|
if (result != NULL)
|
|
return result;
|
|
|
|
+ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", xpath);
|
|
+
|
|
/*
|
|
Try in /x:xmpmeta/ (xmpmeta is optional)
|
|
https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP SDK Release cc-2016-08/XMPSpecificationPart1.pdf (Section 7.3.3)
|
|
*/
|
|
xpathObj = xmlXPathEvalExpression (BAD_CAST xmpmetapath, xpathCtx);
|
|
- if (xpathObj == NULL)
|
|
+ if (xpathObj == NULL) {
|
|
+ g_free (xmpmetapath);
|
|
return NULL;
|
|
+ }
|
|
|
|
if (xpathObj->nodesetval != NULL && xpathObj->nodesetval->nodeNr != 0)
|
|
result = xmlNodeGetContent (xpathObj->nodesetval->nodeTab[0]);
|
|
@@ -743,12 +747,14 @@ static char *
|
|
pdf_document_get_author_from_metadata (xmlXPathContextPtr xpathCtx)
|
|
{
|
|
char* result = NULL;
|
|
- char* xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", AUTHORS);
|
|
+ char* xmpmetapath;
|
|
/* Try in /rdf:RDF/ */
|
|
result = pdf_document_get_lists_from_dc_tags (xpathCtx, AUTHORS);
|
|
if (result != NULL)
|
|
return result;
|
|
|
|
+ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", AUTHORS);
|
|
+
|
|
/* Try in /x:xmpmeta/ */
|
|
result = pdf_document_get_lists_from_dc_tags (xpathCtx, xmpmetapath);
|
|
g_free (xmpmetapath);
|
|
@@ -760,12 +766,14 @@ static char *
|
|
pdf_document_get_keywords_from_metadata (xmlXPathContextPtr xpathCtx)
|
|
{
|
|
char* result = NULL;
|
|
- char* xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", KEYWORDS);
|
|
+ char* xmpmetapath;
|
|
/* Try in /rdf:RDF/ */
|
|
result = pdf_document_get_lists_from_dc_tags (xpathCtx, KEYWORDS);
|
|
if (result != NULL)
|
|
return result;
|
|
|
|
+ xmpmetapath = g_strdup_printf ("%s%s", "/x:xmpmeta", KEYWORDS);
|
|
+
|
|
/* Try in /x:xmpmeta/ */
|
|
result = pdf_document_get_lists_from_dc_tags (xpathCtx, xmpmetapath);
|
|
g_free (xmpmetapath);
|
|
@@ -859,6 +859,7 @@ pdf_document_get_info (EvDocument *docum
|
|
break;
|
|
case POPPLER_PAGE_LAYOUT_TWO_COLUMN_RIGHT:
|
|
info->layout = EV_DOCUMENT_LAYOUT_TWO_COLUMN_RIGHT;
|
|
+ break;
|
|
case POPPLER_PAGE_LAYOUT_TWO_PAGE_LEFT:
|
|
info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_LEFT;
|
|
break;
|
|
--- evince-40.1/properties/ev-properties-view.c
|
|
+++ evince-40.1/properties/ev-properties-view.c
|
|
@@ -339,6 +339,7 @@ ev_regular_paper_size (const EvDocumentI
|
|
ABS (info->paper_width - paper_width) <= width_tolerance) {
|
|
/* Note to translators: first placeholder is the paper name (eg.
|
|
* A4), second placeholder is the paper size (eg. 297x210 mm) */
|
|
+ g_free (str);
|
|
str = g_strdup_printf (_("%s, Portrait (%s)"),
|
|
gtk_paper_size_get_display_name (size),
|
|
exact_size);
|
|
@@ -346,6 +347,7 @@ ev_regular_paper_size (const EvDocumentI
|
|
ABS (info->paper_height - paper_width) <= width_tolerance) {
|
|
/* Note to translators: first placeholder is the paper name (eg.
|
|
* A4), second placeholder is the paper size (eg. 297x210 mm) */
|
|
+ g_free (str);
|
|
str = g_strdup_printf ( _("%s, Landscape (%s)"),
|
|
gtk_paper_size_get_display_name (size),
|
|
exact_size);
|
|
--- evince-40.1/cut-n-paste/libgd/gd-two-lines-renderer.c
|
|
+++ evince-40.1/cut-n-paste/libgd/gd-two-lines-renderer.c
|
|
@@ -281,7 +281,7 @@ gd_two_lines_renderer_render (GtkCellRen
|
|
GtkStyleContext *context;
|
|
gint line_one_height;
|
|
GtkStateFlags state;
|
|
- GdkRectangle area, render_area = *cell_area;
|
|
+ GdkRectangle area, render_area;
|
|
gint xpad, ypad, x_offset_1, x_offset_2, y_offset;
|
|
PangoLayout *layout_one, *layout_two;
|
|
PangoRectangle layout_rect;
|
|
--- evince-40.1/cut-n-paste/unarr/rar/filter-rar.c
|
|
+++ evince-40.1/cut-n-paste/unarr/rar/filter-rar.c
|
|
@@ -273,8 +273,10 @@ static struct RARFilter *rar_create_filt
|
|
filter->prog = prog;
|
|
filter->globaldatalen = globaldatalen > RARProgramSystemGlobalSize ? globaldatalen : RARProgramSystemGlobalSize;
|
|
filter->globaldata = calloc(1, filter->globaldatalen);
|
|
- if (!filter->globaldata)
|
|
+ if (!filter->globaldata) {
|
|
+ free (filter);
|
|
return NULL;
|
|
+ }
|
|
if (globaldata)
|
|
memcpy(filter->globaldata, globaldata, globaldatalen);
|
|
if (registers)
|
|
--- evince-40.1/libdocument/ev-document.c
|
|
+++ evince-40.1/libdocument/ev-document.c
|
|
@@ -496,6 +496,9 @@ ev_document_load_stream (EvDocument
|
|
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
|
|
|
klass = EV_DOCUMENT_GET_CLASS (document);
|
|
+
|
|
+ g_return_val_if_fail (klass != NULL, FALSE);
|
|
+
|
|
if (!klass->load_stream) {
|
|
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
|
|
"Backend does not support loading from stream");
|
|
@@ -544,6 +547,9 @@ ev_document_load_gfile (EvDocument
|
|
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
|
|
|
klass = EV_DOCUMENT_GET_CLASS (document);
|
|
+
|
|
+ g_return_val_if_fail (klass != NULL, FALSE);
|
|
+
|
|
if (!klass->load_gfile) {
|
|
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
|
|
"Backend does not support loading from GFile");
|
|
@@ -867,6 +873,9 @@ ev_document_get_backend_info (EvDocument
|
|
g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE);
|
|
|
|
klass = EV_DOCUMENT_GET_CLASS (document);
|
|
+
|
|
+ g_return_val_if_fail (klass != NULL, FALSE);
|
|
+
|
|
if (klass->get_backend_info == NULL)
|
|
return FALSE;
|
|
|
|
--- evince-40.1/libview/ev-pixbuf-cache.c
|
|
+++ evince-40.1/libview/ev-pixbuf-cache.c
|
|
@@ -337,6 +337,11 @@ job_finished_cb (EvJob *job,
|
|
|
|
job_info = find_job_cache (pixbuf_cache, job_render->page);
|
|
|
|
+ if (job_info == NULL) {
|
|
+ g_warning ("Job info not found.");
|
|
+ return;
|
|
+ }
|
|
+
|
|
if (ev_job_is_failed (job)) {
|
|
job_info->job = NULL;
|
|
g_object_unref (job);
|
|
@@ -721,6 +726,11 @@ add_job_if_needed (EvPixbufCache *pixbuf
|
|
gint device_scale = get_device_scale (pixbuf_cache);
|
|
gint width, height;
|
|
|
|
+ if (job_info == NULL) {
|
|
+ g_warning ("Adding job with NULL info.");
|
|
+ return;
|
|
+ }
|
|
+
|
|
if (job_info->job)
|
|
return;
|
|
|
|
--- evince-40.1/libview/ev-print-operation.c
|
|
+++ evince-40.1/libview/ev-print-operation.c
|
|
@@ -181,6 +181,7 @@ ev_print_operation_set_current_page (EvP
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
g_return_if_fail (current_page >= 0);
|
|
|
|
class->set_current_page (op, current_page);
|
|
@@ -193,6 +194,7 @@ ev_print_operation_set_print_settings (E
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
g_return_if_fail (GTK_IS_PRINT_SETTINGS (print_settings));
|
|
|
|
class->set_print_settings (op, print_settings);
|
|
@@ -210,6 +212,7 @@ ev_print_operation_get_print_settings (E
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL);
|
|
+ g_return_val_if_fail (class != NULL, NULL);
|
|
|
|
return class->get_print_settings (op);
|
|
}
|
|
@@ -221,6 +224,7 @@ ev_print_operation_set_default_page_setu
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
g_return_if_fail (GTK_IS_PAGE_SETUP (page_setup));
|
|
|
|
class->set_default_page_setup (op, page_setup);
|
|
@@ -238,6 +242,7 @@ ev_print_operation_get_default_page_setu
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL);
|
|
+ g_return_val_if_fail (class != NULL, NULL);
|
|
|
|
return class->get_default_page_setup (op);
|
|
}
|
|
@@ -249,6 +254,7 @@ ev_print_operation_set_job_name (EvPrint
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
g_return_if_fail (job_name != NULL);
|
|
|
|
class->set_job_name (op, job_name);
|
|
@@ -260,6 +266,7 @@ ev_print_operation_get_job_name (EvPrint
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), NULL);
|
|
+ g_return_val_if_fail (class != NULL, NULL);
|
|
|
|
return class->get_job_name (op);
|
|
}
|
|
@@ -271,6 +278,7 @@ ev_print_operation_run (EvPrintOperation
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
|
|
class->run (op, parent);
|
|
}
|
|
@@ -281,6 +289,7 @@ ev_print_operation_cancel (EvPrintOperat
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
|
|
class->cancel (op);
|
|
}
|
|
@@ -292,6 +301,7 @@ ev_print_operation_get_error (EvPrintOpe
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
|
|
class->get_error (op, error);
|
|
}
|
|
@@ -303,6 +313,7 @@ ev_print_operation_set_embed_page_setup
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_if_fail (EV_IS_PRINT_OPERATION (op));
|
|
+ g_return_if_fail (class != NULL);
|
|
|
|
class->set_embed_page_setup (op, embed);
|
|
}
|
|
@@ -313,6 +324,7 @@ ev_print_operation_get_embed_page_setup
|
|
EvPrintOperationClass *class = EV_PRINT_OPERATION_GET_CLASS (op);
|
|
|
|
g_return_val_if_fail (EV_IS_PRINT_OPERATION (op), FALSE);
|
|
+ g_return_val_if_fail (class != NULL, FALSE);
|
|
|
|
return class->get_embed_page_setup (op);
|
|
}
|
|
--- evince-40.1/libview/ev-timeline.c
|
|
+++ evince-40.1/libview/ev-timeline.c
|
|
@@ -289,9 +289,15 @@ ev_timeline_new (guint duration)
|
|
void
|
|
ev_timeline_start (EvTimeline *timeline)
|
|
{
|
|
+ EvTimelineClass *klass;
|
|
+
|
|
g_return_if_fail (EV_IS_TIMELINE (timeline));
|
|
|
|
- EV_TIMELINE_GET_CLASS (timeline)->start (timeline);
|
|
+ klass = EV_TIMELINE_GET_CLASS (timeline);
|
|
+
|
|
+ g_return_if_fail (klass != NULL);
|
|
+
|
|
+ klass->start (timeline);
|
|
}
|
|
|
|
void
|
|
--- evince-40.1/libview/ev-view.c
|
|
+++ evince-40.1/libview/ev-view.c
|
|
@@ -1147,7 +1147,7 @@ ensure_rectangle_is_visible (EvView *vie
|
|
if (rect->x < adj_value) {
|
|
value = MAX (gtk_adjustment_get_lower (adjustment), rect->x - MARGIN);
|
|
gtk_adjustment_set_value (view->hadjustment, value);
|
|
- } else if (rect->x + rect->height > adj_value + allocation.width) {
|
|
+ } else if (rect->x + rect->width > adj_value + allocation.width) {
|
|
value = MIN (gtk_adjustment_get_upper (adjustment), rect->x + rect->width -
|
|
allocation.width + MARGIN);
|
|
gtk_adjustment_set_value (view->hadjustment, value);
|
|
@@ -1777,6 +1777,11 @@ goto_fitv_dest (EvView *view, EvLinkDest
|
|
|
|
page = ev_link_dest_get_page (dest);
|
|
|
|
+ if (page < 0) {
|
|
+ g_warning ("Link does not contain a page.");
|
|
+ return;
|
|
+ }
|
|
+
|
|
left = ev_link_dest_get_left (dest, &change_left);
|
|
doc_point.x = change_left ? left : 0;
|
|
doc_point.y = 0;
|
|
@@ -1813,6 +1818,11 @@ goto_fith_dest (EvView *view, EvLinkDest
|
|
|
|
page = ev_link_dest_get_page (dest);
|
|
|
|
+ if (page < 0) {
|
|
+ g_warning ("Link does not contain a page.");
|
|
+ return;
|
|
+ }
|
|
+
|
|
top = ev_link_dest_get_top (dest, &change_top);
|
|
doc_point.x = 0;
|
|
doc_point.y = change_top ? top : 0;
|
|
@@ -1846,6 +1856,11 @@ goto_fit_dest (EvView *view, EvLinkDest
|
|
|
|
page = ev_link_dest_get_page (dest);
|
|
|
|
+ if (page < 0) {
|
|
+ g_warning ("Link does not contain a page.");
|
|
+ return;
|
|
+ }
|
|
+
|
|
if (view->allow_links_change_zoom) {
|
|
double zoom;
|
|
gdouble doc_width, doc_height;
|
|
--- evince-40.1/libview/ev-view-presentation.c
|
|
+++ evince-40.1/libview/ev-view-presentation.c
|
|
@@ -448,7 +448,7 @@ ev_view_presentation_update_current_page
|
|
{
|
|
gint jump;
|
|
|
|
- if (page < 0 || page >= ev_document_get_n_pages (pview->document))
|
|
+ if (page >= ev_document_get_n_pages (pview->document))
|
|
return;
|
|
|
|
ev_view_presentation_animation_cancel (pview);
|
|
--- evince-40.1/shell/ev-find-sidebar.c
|
|
+++ evince-40.1/shell/ev-find-sidebar.c
|
|
@@ -476,8 +476,10 @@ process_matches_idle (EvFindSidebar *sid
|
|
page_label = ev_document_get_page_label (document, current_page);
|
|
page_text = get_page_text (document, page, &areas, &n_areas);
|
|
g_object_unref (page);
|
|
- if (!page_text)
|
|
+ if (!page_text) {
|
|
+ g_free (page_label);
|
|
continue;
|
|
+ }
|
|
|
|
text_log_attrs_length = g_utf8_strlen (page_text, -1);
|
|
text_log_attrs = g_new0 (PangoLogAttr, text_log_attrs_length + 1);
|
|
--- evince-40.1/shell/ev-sidebar-thumbnails.c
|
|
+++ evince-40.1/shell/ev-sidebar-thumbnails.c
|
|
@@ -658,11 +658,11 @@ ev_sidebar_thumbnails_fill_model (EvSide
|
|
int i;
|
|
gint prev_width = -1;
|
|
gint prev_height = -1;
|
|
+ cairo_surface_t *loading_icon = NULL;
|
|
|
|
for (i = 0; i < sidebar_thumbnails->priv->n_pages; i++) {
|
|
gchar *page_label;
|
|
gchar *page_string;
|
|
- cairo_surface_t *loading_icon = NULL;
|
|
gint width, height;
|
|
|
|
page_label = ev_document_get_page_label (priv->document, i);
|
|
--- evince-40.1/shell/ev-window.c
|
|
+++ evince-40.1/shell/ev-window.c
|
|
@@ -3121,10 +3121,10 @@ ev_window_load_print_settings_from_metad
|
|
for (i = 0; i < G_N_ELEMENTS (document_print_settings); i++) {
|
|
gchar *value = NULL;
|
|
|
|
- ev_metadata_get_string (priv->metadata,
|
|
- document_print_settings[i], &value);
|
|
- gtk_print_settings_set (print_settings,
|
|
- document_print_settings[i], value);
|
|
+ if (ev_metadata_get_string (priv->metadata,
|
|
+ document_print_settings[i], &value))
|
|
+ gtk_print_settings_set (print_settings,
|
|
+ document_print_settings[i], value);
|
|
}
|
|
}
|
|
|
|
@@ -4705,12 +4705,16 @@ ev_window_cmd_bookmarks_add (GSimpleActi
|
|
gchar *page_label;
|
|
|
|
bm.page = ev_document_model_get_page (priv->model);
|
|
- page_label = ev_document_get_page_label (priv->document, bm.page);
|
|
- bm.title = g_strdup_printf (_("Page %s"), page_label);
|
|
- g_free (page_label);
|
|
+ if (bm.page >= 0) {
|
|
+ page_label = ev_document_get_page_label (priv->document, bm.page);
|
|
+ bm.title = g_strdup_printf (_("Page %s"), page_label);
|
|
+ g_free (page_label);
|
|
|
|
- /* EvBookmarks takes ownership of bookmark */
|
|
- ev_bookmarks_add (priv->bookmarks, &bm);
|
|
+ /* EvBookmarks takes ownership of bookmark */
|
|
+ ev_bookmarks_add (priv->bookmarks, &bm);
|
|
+ } else {
|
|
+ g_warning ("Bookmarking of a page failed.");
|
|
+ }
|
|
}
|
|
|
|
static void
|