aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-object.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-object.c')
-rw-r--r--camel/camel-object.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/camel/camel-object.c b/camel/camel-object.c
index 31d458a59d..744e9f7566 100644
--- a/camel/camel-object.c
+++ b/camel/camel-object.c
@@ -439,6 +439,7 @@ cobject_state_read(CamelObject *obj, FILE *fp)
switch(argv->argv[argv->argc].tag & CAMEL_ARG_TYPE) {
case CAMEL_ARG_INT:
+ case CAMEL_ARG_BOO:
if (camel_file_util_decode_uint32(fp, &argv->argv[argv->argc].ca_int) == -1)
goto cleanup;
break;
@@ -535,6 +536,7 @@ cobject_state_write(CamelObject *obj, FILE *fp)
switch (arg->tag & CAMEL_ARG_TYPE) {
case CAMEL_ARG_INT:
+ case CAMEL_ARG_BOO:
if (camel_file_util_encode_uint32(fp, arg->ca_int) == -1)
goto abort;
break;
@@ -547,6 +549,13 @@ cobject_state_write(CamelObject *obj, FILE *fp)
res = 0;
abort:
+ for (i=0;i<argv->argc;i++) {
+ CamelArg *arg = &argv->argv[i];
+
+ if ((argv->argv[i].tag & CAMEL_ARG_TYPE) == CAMEL_ARG_STR)
+ camel_object_free(obj, arg->tag, arg->ca_str);
+ }
+
g_free(argv);
g_free(arggetv);