From 982357f35cdadf9a823dd1b5a3c0a35bf2ecbdad Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Wed, 17 Oct 2001 22:16:46 +0000 Subject: Make sure the new description isn't the same as the old description 2001-10-17 Jeffrey Stedfast * camel-exception.c (camel_exception_set): Make sure the new description isn't the same as the old description pointer before freeing the old one. (camel_exception_setv): Don't free the old description until we set the new one this way we can reuse the old description in the new description. * providers/local/camel-mbox-folder.c (mbox_append_message): If errno == EINTR, then we got a user-cancel so set the exception appropriately so that we don't make the user shit his pants. svn path=/trunk/; revision=13737 --- camel/camel-exception.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'camel/camel-exception.c') diff --git a/camel/camel-exception.c b/camel/camel-exception.c index 3ae8d74f77..75400fa8df 100644 --- a/camel/camel-exception.c +++ b/camel/camel-exception.c @@ -160,9 +160,10 @@ camel_exception_set (CamelException *ex, ex->id = id; - if (ex->desc) - g_free(ex->desc); - ex->desc = g_strdup(desc); + if (desc != ex->desc) { + g_free (ex->desc); + ex->desc = g_strdup (desc); + } CAMEL_EXCEPTION_UNLOCK(exception); } @@ -195,19 +196,21 @@ camel_exception_setv (CamelException *ex, ...) { va_list args; + char *old; if (!ex) return; CAMEL_EXCEPTION_LOCK(exception); - if (ex->desc) - g_free (ex->desc); + old = ex->desc; va_start(args, format); ex->desc = g_strdup_vprintf (format, args); va_end (args); + g_free (old); + ex->id = id; CAMEL_EXCEPTION_UNLOCK(exception); -- cgit v1.2.3