DBG("After[%s]", p);
}
-static void __decode_iso8859_1_to_utf8(char *p)
+static char* __decode_iso8859_1_to_utf8(char *p)
{
- RET_IF(NULL == p);
+ RETV_IF(NULL == p, NULL);
char *src = NULL;
char *dst = NULL;
DBG("Before [%s]", p);
int len = strlen(p);
len *= 2;
- p = realloc(p, len);
- if (NULL == p) {
+
+ char *out_p = NULL;
+ out_p = realloc(p, len);
+ if (NULL == out_p) {
ERR("realloc() Fail");
- return;
+ return NULL;
}
/* check enough space */
- for (src = dst = p; *src; src++, dst++) {
+ for (src = dst = out_p; *src; src++, dst++) {
if (*src & 0x80) {
++dst;
}
*dst-- = *src--;
}
}
- DBG("After [%s]", p);
+ DBG("After [%s]", out_p);
+ return out_p;
}
static char* __decode_charset(char *p)
case VCAL_CHARSET_UTF_8:
break;
case VCAL_CHARSET_ISO_8859_1:
- __decode_iso8859_1_to_utf8(ret_str);
+ ret_str = __decode_iso8859_1_to_utf8(ret_str);
break;
}
}
if (NULL == array) {
ERR("calloc() Fail");
+ free(delete_array);
break;
}
memcpy(array +count, delete_array, delete_count *sizeof(int));
count += delete_count;
}
+ free(delete_array);
} while (CONTACTS_ERROR_NONE == contacts_list_next(contacts_list));
*out_delete = array;
*out_count = count;