X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Ficu_utf8.c;h=443adc8b0d2895d8f0650ca3a434b9f20ee425a0;hp=dd392d130da215e76f92ab7c78fae13c77a34788;hb=2b8637b1b34cbbd57cee3cd1b493f5a8231e9afd;hpb=5a2b1f41cd0b3e0f5441a4cfb3b9484a1c4b017d diff --git a/src/icu_utf8.c b/src/icu_utf8.c index dd392d1..443adc8 100644 --- a/src/icu_utf8.c +++ b/src/icu_utf8.c @@ -22,6 +22,7 @@ #include #include #include +#include #include /* some more string fcns*/ #include /* char names */ @@ -31,36 +32,31 @@ struct icu_buf_utf8 *icu_buf_utf8_create(size_t capacity) struct icu_buf_utf8 *buf8 = (struct icu_buf_utf8 *) xmalloc(sizeof(struct icu_buf_utf8)); - buf8->utf8 = 0; buf8->utf8_len = 0; - buf8->utf8_cap = 0; - + buf8->utf8_cap = capacity; if (capacity > 0) { buf8->utf8 = (uint8_t *) xmalloc(sizeof(uint8_t) * capacity); buf8->utf8[0] = (uint8_t) 0; - buf8->utf8_cap = capacity; } + else + buf8->utf8 = 0; return buf8; } struct icu_buf_utf8 *icu_buf_utf8_clear(struct icu_buf_utf8 *buf8) { - if (buf8) - { - if (buf8->utf8) - buf8->utf8[0] = (uint8_t) 0; - buf8->utf8_len = 0; - } + assert(buf8); + if (buf8->utf8) + buf8->utf8[0] = (uint8_t) 0; + buf8->utf8_len = 0; return buf8; } struct icu_buf_utf8 *icu_buf_utf8_resize(struct icu_buf_utf8 *buf8, size_t capacity) { - if (!buf8) - return 0; - + assert(buf8); if (capacity > 0) { if (0 == buf8->utf8) @@ -71,20 +67,13 @@ struct icu_buf_utf8 *icu_buf_utf8_resize(struct icu_buf_utf8 *buf8, buf8->utf8_cap = capacity; } - else - { - xfree(buf8->utf8); - buf8->utf8 = 0; - buf8->utf8_len = 0; - buf8->utf8_cap = 0; - } - return buf8; } const char *icu_buf_utf8_to_cstr(struct icu_buf_utf8 *src8) { - if (!src8 || src8->utf8_len == 0) + assert(src8); + if (src8->utf8_len == 0) return ""; if (src8->utf8_len == src8->utf8_cap)