Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz
[yaz-moved-to-github.git] / src / icu_utf16.c
index 5bb74ec..962e90c 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 
@@ -32,36 +32,31 @@ struct icu_buf_utf16 *icu_buf_utf16_create(size_t capacity)
     struct icu_buf_utf16 *buf16
         = (struct icu_buf_utf16 *) xmalloc(sizeof(struct icu_buf_utf16));
 
-    buf16->utf16 = 0;
     buf16->utf16_len = 0;
-    buf16->utf16_cap = 0;
-
+    buf16->utf16_cap = capacity;
     if (capacity > 0)
     {
         buf16->utf16 = (UChar *) xmalloc(sizeof(UChar) * capacity);
         buf16->utf16[0] = (UChar) 0;
-        buf16->utf16_cap = capacity;
     }
+    else
+        buf16->utf16 = 0;
     return buf16;
 }
 
 struct icu_buf_utf16 *icu_buf_utf16_clear(struct icu_buf_utf16 *buf16)
 {
-    if (buf16)
-    {
-        if (buf16->utf16)
-            buf16->utf16[0] = (UChar) 0;
-        buf16->utf16_len = 0;
-    }
+    assert(buf16);
+    if (buf16->utf16)
+        buf16->utf16[0] = (UChar) 0;
+    buf16->utf16_len = 0;
     return buf16;
 }
 
 struct icu_buf_utf16 *icu_buf_utf16_resize(struct icu_buf_utf16 *buf16,
                                            size_t capacity)
 {
-    if (!buf16)
-        return 0;
-
+    assert(buf16);
     if (capacity > 0)
     {
         if (0 == buf16->utf16)
@@ -69,14 +64,8 @@ struct icu_buf_utf16 *icu_buf_utf16_resize(struct icu_buf_utf16 *buf16,
         else
             buf16->utf16
                 = (UChar *) xrealloc(buf16->utf16, sizeof(UChar) * capacity);
+        buf16->utf16_cap = capacity;
     }
-    else
-    {
-        xfree(buf16->utf16);
-        buf16->utf16 = 0;
-        buf16->utf16_len = 0;
-    }
-    buf16->utf16_cap = capacity;
     return buf16;
 }