diff options
Diffstat (limited to 'addressbook/gui/contact-editor/e-contact-editor.c')
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 212225b3e5..6bbc80e9bb 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -2260,12 +2260,15 @@ extract_simple_field (EContactEditor *editor, GtkWidget *widget, gint field_id) photo.data.inlined.mime_type = NULL; if (editor->image_changed) { + gchar *img_buff = NULL; if (editor->image_set && e_image_chooser_get_image_data (E_IMAGE_CHOOSER (widget), - (char **)&photo.data.inlined.data, &photo.data.inlined.length)) { + &img_buff, &photo.data.inlined.length)) { GdkPixbuf *pixbuf, *new; GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); + photo.data.inlined.data = (unsigned char *)img_buff; + img_buff = NULL; gdk_pixbuf_loader_write (loader, photo.data.inlined.data, photo.data.inlined.length, NULL); gdk_pixbuf_loader_close (loader, NULL); @@ -2295,9 +2298,11 @@ extract_simple_field (EContactEditor *editor, GtkWidget *widget, gint field_id) GdkPixbufFormat *format = gdk_pixbuf_loader_get_format (loader); gchar *format_name = gdk_pixbuf_format_get_name (format); g_free(photo.data.inlined.data); - gdk_pixbuf_save_to_buffer (new, (gchar **)&(photo.data.inlined.data), + gdk_pixbuf_save_to_buffer (new, &img_buff, &photo.data.inlined.length, format_name, NULL, NULL); + photo.data.inlined.data = (unsigned char *)img_buff; + img_buff = NULL; g_free (format_name); g_object_unref (new); } |