aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-exception.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-exception.c')
-rw-r--r--camel/camel-exception.c13
1 files changed, 8 insertions, 5 deletions
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);