* New upstream release.
- fix message deleting in search folers. closes: #585794 - fix crash on i386 with largefile. closes: #585921 * debian/patches - 03_fix-segfault-on-some-mails-display, 04_fix-crash-when-viewing-closing-mails-quickly dropped, included upstream. * debian/control: - update build-deps to 2.30.2. - update debhelper build-dep to 7.2.3 for dh_bugfiles. git-svn-id: file:///svn/pkg-evolution/unstable/evolution@1662 ed03ce00-e4f4-0310-9448-ee38221cb277
This commit is contained in:
14
debian/changelog
vendored
14
debian/changelog
vendored
@ -1,11 +1,21 @@
|
||||
evolution (2.30.1.2-4) unstable; urgency=low
|
||||
evolution (2.30.2-1) UNRELEASED; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
- fix message deleting in search folers. closes: #585794
|
||||
- fix crash on i386 with largefile. closes: #585921
|
||||
* debian/rules:
|
||||
- install some information on bug reporting
|
||||
* debian/bug-presubj: warn user that she should report upstream issues
|
||||
directly to upstream bugzilla because of lack of time and manpower.
|
||||
* debian/patches
|
||||
- 03_fix-segfault-on-some-mails-display,
|
||||
04_fix-crash-when-viewing-closing-mails-quickly dropped,
|
||||
included upstream.
|
||||
* debian/control:
|
||||
- update build-deps to 2.30.2.
|
||||
- update debhelper build-dep to 7.2.3 for dh_bugfiles.
|
||||
|
||||
-- Yves-Alexis Perez <corsac@debian.org> Thu, 17 Jun 2010 08:06:35 +0200
|
||||
-- Yves-Alexis Perez <corsac@debian.org> Mon, 21 Jun 2010 00:19:36 +0200
|
||||
|
||||
evolution (2.30.1.2-3) unstable; urgency=low
|
||||
|
||||
|
24
debian/control
vendored
24
debian/control
vendored
@ -14,7 +14,7 @@ Dm-Upload-Allowed: yes
|
||||
Homepage: http://www.gnome.org/projects/evolution/
|
||||
Vcs-Svn: svn://svn.debian.org/svn/pkg-evolution/unstable/evolution
|
||||
Vcs-Browser: http://svn.debian.org/wsvn/pkg-evolution/unstable/evolution
|
||||
Build-Depends: debhelper (>= 5.0.0),
|
||||
Build-Depends: debhelper (>= 7.2.3~),
|
||||
cdbs (>= 0.4.52),
|
||||
dpkg-dev (>= 1.14.16),
|
||||
scrollkeeper,
|
||||
@ -34,22 +34,22 @@ Build-Depends: debhelper (>= 5.0.0),
|
||||
libnss3-dev,
|
||||
psmisc,
|
||||
libglib2.0-dev (>= 2.22.0),
|
||||
evolution-data-server-dev (>= 2.30.1),
|
||||
evolution-data-server-dev (>= 2.30.2),
|
||||
evolution-data-server-dev (<< 2.31),
|
||||
libgtk2.0-dev (>= 2.18.0),
|
||||
libgnomecanvas2-dev,
|
||||
libxml2-dev,
|
||||
libgconf2-dev,
|
||||
libcamel1.2-dev (>= 2.30.1),
|
||||
libedataserver1.2-dev (>= 2.30.1),
|
||||
libegroupwise1.2-dev (>= 2.30.1),
|
||||
libedataserverui1.2-dev (>= 2.30.1),
|
||||
libebackend1.2-dev (>= 2.30.1),
|
||||
libgdata1.2-dev (>= 2.30.1),
|
||||
libgdata-google1.2-dev (>= 2.30.1),
|
||||
libcamel1.2-dev (>= 2.30.2),
|
||||
libedataserver1.2-dev (>= 2.30.2),
|
||||
libegroupwise1.2-dev (>= 2.30.2),
|
||||
libedataserverui1.2-dev (>= 2.30.2),
|
||||
libebackend1.2-dev (>= 2.30.2),
|
||||
libgdata1.2-dev (>= 2.30.2),
|
||||
libgdata-google1.2-dev (>= 2.30.2),
|
||||
libgnome2-dev,
|
||||
libecal1.2-dev (>= 2.30.1),
|
||||
libebook1.2-dev (>= 2.30.1),
|
||||
libecal1.2-dev (>= 2.30.2),
|
||||
libebook1.2-dev (>= 2.30.2),
|
||||
libdbus-glib-1-dev,
|
||||
libnm-glib-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386],
|
||||
libnotify-dev (>= 0.3.0),
|
||||
@ -76,7 +76,7 @@ Architecture: any
|
||||
Depends: ${shlibs:Depends},
|
||||
${misc:Depends},
|
||||
evolution-common (= ${source:Version}),
|
||||
evolution-data-server (>= 2.30.1),
|
||||
evolution-data-server (>= 2.30.2),
|
||||
evolution-data-server (<< 2.31),
|
||||
gnome-icon-theme (>= 2.19.92),
|
||||
dbus
|
||||
|
@ -1,29 +0,0 @@
|
||||
commit cacfd2114e7dd56cc12613d625bac450cc69b4ae
|
||||
Author: Michel Dänzer <michel@daenzer.net>
|
||||
Date: Wed Mar 24 16:51:31 2010 +0100
|
||||
|
||||
Bug 612082 - Crash in em_format_snoop_type
|
||||
|
||||
This is not a final solution to the bug, but merely avoids a NULL
|
||||
pointer dereference which is likely a symptom of a deeper problem.
|
||||
|
||||
Signed-off-by: Michel Dänzer <michel@daenzer.net>
|
||||
|
||||
diff --git a/em-format/em-format.c b/em-format/em-format.c
|
||||
index 19913ef..a2034b4 100644
|
||||
--- a/em-format/em-format.c
|
||||
+++ b/em-format/em-format.c
|
||||
@@ -2015,10 +2015,11 @@ em_format_snoop_type (CamelMimePart *part)
|
||||
|
||||
dw = camel_medium_get_content_object((CamelMedium *)part);
|
||||
if (!camel_data_wrapper_is_offline(dw)) {
|
||||
- CamelStreamMem *mem = (CamelStreamMem *)camel_stream_mem_new();
|
||||
+ GByteArray *buffer = g_byte_array_new ();
|
||||
+ CamelStreamMem *mem = (CamelStreamMem *)camel_stream_mem_new_with_byte_array(buffer);
|
||||
|
||||
if (camel_data_wrapper_decode_to_stream(dw, (CamelStream *)mem) > 0) {
|
||||
- gchar *ct = g_content_type_guess (filename, mem->buffer->data, mem->buffer->len, NULL);
|
||||
+ gchar *ct = g_content_type_guess (filename, buffer->data, buffer->len, NULL);
|
||||
|
||||
if (ct)
|
||||
magic_type = g_content_type_get_mime_type (ct);
|
@ -1,148 +0,0 @@
|
||||
commit 4a2343cb34498c701e71679e3c50c9fc81dd5b80
|
||||
Author: Matthew Barnes <mbarnes@redhat.com>
|
||||
Date: Tue May 18 08:07:19 2010 -0400
|
||||
|
||||
Bug 618902 - Crash when viewing/closing messages quickly
|
||||
|
||||
Closing an EMailBrowser window causes it to be disposed immediately,
|
||||
but ongoing async operations still hold an EMailBrowser reference --
|
||||
in particular, regenerating the internal message list and fetching a
|
||||
mail message. The callback functions for these operations were not
|
||||
equipped to deal with the disposed-but-not-yet-finalized object.
|
||||
|
||||
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
|
||||
index cf5176f..cd7ecd3 100644
|
||||
--- a/mail/e-mail-browser.c
|
||||
+++ b/mail/e-mail-browser.c
|
||||
@@ -445,7 +445,8 @@ mail_browser_dispose (GObject *object)
|
||||
}
|
||||
|
||||
if (priv->message_list != NULL) {
|
||||
- g_object_unref (priv->message_list);
|
||||
+ /* This will cancel a regen operation. */
|
||||
+ gtk_widget_destroy (priv->message_list);
|
||||
priv->message_list = NULL;
|
||||
}
|
||||
|
||||
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
|
||||
index 53d45fd..bb668bf 100644
|
||||
--- a/mail/e-mail-reader.c
|
||||
+++ b/mail/e-mail-reader.c
|
||||
@@ -52,7 +52,8 @@
|
||||
#include "mail/message-list.h"
|
||||
|
||||
#define E_MAIL_READER_GET_PRIVATE(obj) \
|
||||
- (mail_reader_get_private (G_OBJECT (obj)))
|
||||
+ ((EMailReaderPrivate *) g_object_get_qdata \
|
||||
+ (G_OBJECT (obj), quark_private))
|
||||
|
||||
typedef struct _EMailReaderPrivate EMailReaderPrivate;
|
||||
|
||||
@@ -92,31 +93,24 @@ static GQuark quark_private;
|
||||
static guint signals[LAST_SIGNAL];
|
||||
|
||||
static void
|
||||
-mail_reader_finalize (EMailReaderPrivate *priv)
|
||||
+mail_reader_destroy (GObject *object)
|
||||
{
|
||||
- if (priv->message_selected_timeout_id > 0)
|
||||
- g_source_remove (priv->message_selected_timeout_id);
|
||||
-
|
||||
- g_free (priv->mark_read_message_uid);
|
||||
-
|
||||
- g_slice_free (EMailReaderPrivate, priv);
|
||||
+ /* This will free the private struct. */
|
||||
+ g_object_set_qdata (object, quark_private, NULL);
|
||||
}
|
||||
|
||||
-static EMailReaderPrivate *
|
||||
-mail_reader_get_private (GObject *object)
|
||||
+static void
|
||||
+mail_reader_private_free (EMailReaderPrivate *priv)
|
||||
{
|
||||
- EMailReaderPrivate *priv;
|
||||
+ if (priv->message_selected_timeout_id > 0)
|
||||
+ g_source_remove (priv->message_selected_timeout_id);
|
||||
|
||||
- priv = g_object_get_qdata (object, quark_private);
|
||||
+ if (priv->retrieving_message_operation_id > 0)
|
||||
+ mail_msg_cancel (priv->retrieving_message_operation_id);
|
||||
|
||||
- if (G_UNLIKELY (priv == NULL)) {
|
||||
- priv = g_slice_new0 (EMailReaderPrivate);
|
||||
- g_object_set_qdata_full (
|
||||
- object, quark_private, priv,
|
||||
- (GDestroyNotify) mail_reader_finalize);
|
||||
- }
|
||||
+ g_free (priv->mark_read_message_uid);
|
||||
|
||||
- return priv;
|
||||
+ g_slice_free (EMailReaderPrivate, priv);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1830,6 +1824,14 @@ mail_reader_message_loaded_cb (CamelFolder *folder,
|
||||
|
||||
priv = E_MAIL_READER_GET_PRIVATE (reader);
|
||||
|
||||
+ /* If the private struct is NULL, the EMailReader was destroyed
|
||||
+ * while we were loading the message and we're likely holding the
|
||||
+ * last reference. Nothing to do but drop the reference. */
|
||||
+ if (priv == NULL) {
|
||||
+ g_object_unref (reader);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
html_display = e_mail_reader_get_html_display (reader);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
@@ -2551,7 +2553,7 @@ e_mail_reader_get_type (void)
|
||||
type = g_type_register_static (
|
||||
G_TYPE_INTERFACE, "EMailReader", &type_info, 0);
|
||||
|
||||
- g_type_interface_add_prerequisite (type, G_TYPE_OBJECT);
|
||||
+ g_type_interface_add_prerequisite (type, GTK_TYPE_OBJECT);
|
||||
}
|
||||
|
||||
return type;
|
||||
@@ -2726,6 +2728,19 @@ e_mail_reader_init (EMailReader *reader)
|
||||
g_signal_connect_swapped (
|
||||
message_list, "selection-change",
|
||||
G_CALLBACK (e_mail_reader_changed), reader);
|
||||
+
|
||||
+ /* Install a private struct for storing things like flags and
|
||||
+ * timeout and asynchronous operation IDs. We delete it when
|
||||
+ * the EMailReader is destroyed rather than finalized so that
|
||||
+ * asynchronous callbacks holding a reference can detect that
|
||||
+ * the reader has been destroyed and drop their reference. */
|
||||
+ g_object_set_qdata_full (
|
||||
+ G_OBJECT (reader), quark_private,
|
||||
+ g_slice_new0 (EMailReaderPrivate),
|
||||
+ (GDestroyNotify) mail_reader_private_free);
|
||||
+ g_signal_connect (
|
||||
+ reader, "destroy",
|
||||
+ G_CALLBACK (mail_reader_destroy), NULL);
|
||||
}
|
||||
|
||||
void
|
||||
diff --git a/mail/message-list.c b/mail/message-list.c
|
||||
index ed12365..c736108 100644
|
||||
--- a/mail/message-list.c
|
||||
+++ b/mail/message-list.c
|
||||
@@ -4900,7 +4900,7 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca
|
||||
#endif
|
||||
|
||||
m = mail_msg_new (®en_list_info);
|
||||
- m->ml = ml;
|
||||
+ m->ml = g_object_ref (ml);
|
||||
m->search = g_strdup (search);
|
||||
m->hideexpr = g_strdup (hideexpr);
|
||||
m->changes = changes;
|
||||
@@ -4908,7 +4908,6 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca
|
||||
m->hidedel = ml->hidedeleted;
|
||||
m->hidejunk = ml->hidejunk;
|
||||
m->thread_subject = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/thread_subject", NULL);
|
||||
- g_object_ref(ml);
|
||||
m->folder = ml->folder;
|
||||
camel_object_ref(m->folder);
|
||||
m->last_row = -1;
|
2
debian/rules
vendored
2
debian/rules
vendored
@ -41,5 +41,5 @@ clean::
|
||||
debconf-updatepo
|
||||
find -name '*.schemas' | xargs rm -f
|
||||
|
||||
install::
|
||||
common-binary-post-install-indep::
|
||||
dh_bugfiles -A
|
||||
|
Reference in New Issue
Block a user