diff options
Diffstat (limited to 'camel/camel-object.c')
-rw-r--r-- | camel/camel-object.c | 9 |
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); |