]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
htsmsg: remove HMF_NAME_ALLOCED / INALLOCED
authorJaroslav Kysela <perex@perex.cz>
Mon, 8 Jan 2018 07:37:16 +0000 (08:37 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 8 Jan 2018 08:27:53 +0000 (09:27 +0100)
src/htsmsg.c
src/htsmsg.h
src/htsmsg_binary.c

index 78e86356131d52ea40855f3d8f3526772d368807..9b3ab7de1a1679cc31d250cfce73c3ac8e048ddd 100644 (file)
@@ -78,23 +78,13 @@ htsmsg_field_data_destroy(htsmsg_field_t *f)
 void
 htsmsg_field_destroy(htsmsg_t *msg, htsmsg_field_t *f)
 {
-#if ENABLE_SLOW_MEMORYINFO
-  size_t asize = 0;
-#endif
-
   TAILQ_REMOVE(&msg->hm_fields, f, hmf_link);
 
   htsmsg_field_data_destroy(f);
 
-  if (f->hmf_flags & HMF_NAME_ALLOCED) {
-#if ENABLE_SLOW_MEMORYINFO
-    asize += strlen(f->hmf_name);
-#endif
-    free((void *)f->hmf_name);
-  }
 #if ENABLE_SLOW_MEMORYINFO
   memoryinfo_free(&htsmsg_field_memoryinfo,
-                  sizeof(*f) + f->hmf_edata_size + asize);
+                  sizeof(*f) + f->hmf_edata_size);
 #endif
   free(f);
 }
@@ -118,14 +108,10 @@ htsmsg_clear(htsmsg_t *msg)
 htsmsg_field_t *
 htsmsg_field_add(htsmsg_t *msg, const char *name, int type, int flags, size_t esize)
 {
-  size_t nsize = 0;
+  size_t nsize;
   htsmsg_field_t *f;
-#if ENABLE_SLOW_MEMORYINFO
-  size_t asize = 0;
-#endif
   
-  if((flags & HMF_NAME_INALLOCED) && name)
-    nsize = strlen(name) + 1;
+  nsize = name ? strlen(name) + 1 : 0;
   f = malloc(sizeof(htsmsg_field_t) + nsize + esize);
   if(f == NULL)
     return NULL;
@@ -137,20 +123,11 @@ htsmsg_field_add(htsmsg_t *msg, const char *name, int type, int flags, size_t es
     assert(name != NULL);
   }
 
-  if(flags & HMF_NAME_INALLOCED) {
-    if (name) {
-      f->hmf_name = f->hmf_edata;
-      strcpy(f->hmf_edata, name);
-    } else {
-      f->hmf_name = NULL;
-    }
-  } else if(flags & HMF_NAME_ALLOCED) {
-    f->hmf_name = name ? strdup(name) : NULL;
-#if ENABLE_SLOW_MEMORYINFO
-    asize = name ? strlen(name) + 1 : 0;
-#endif
+  if (name) {
+    f->hmf_name = f->hmf_edata;
+    strcpy(f->hmf_edata, name);
   } else {
-    f->hmf_name = name;
+    f->hmf_name = NULL;
   }
 
   if(esize) {
@@ -167,7 +144,7 @@ htsmsg_field_add(htsmsg_t *msg, const char *name, int type, int flags, size_t es
 #if ENABLE_SLOW_MEMORYINFO
   f->hmf_edata_size = nsize + esize;
   memoryinfo_alloc(&htsmsg_field_memoryinfo,
-                   sizeof(htsmsg_field_t) + f->hmf_edata_size + asize);
+                   sizeof(htsmsg_field_t) + f->hmf_edata_size);
 #endif
   return f;
 }
@@ -307,7 +284,7 @@ htsmsg_destroy(htsmsg_t *msg)
 void
 htsmsg_add_bool(htsmsg_t *msg, const char *name, int b)
 {
-  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_BOOL, HMF_NAME_INALLOCED, 0);
+  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_BOOL, 0, 0);
   f->hmf_bool = !!b;
 }
 
@@ -319,7 +296,7 @@ htsmsg_set_bool(htsmsg_t *msg, const char *name, int b)
 {
   htsmsg_field_t *f = htsmsg_field_find(msg, name);
   if (!f)
-    f = htsmsg_field_add(msg, name, HMF_BOOL, HMF_NAME_INALLOCED, 0);
+    f = htsmsg_field_add(msg, name, HMF_BOOL, 0, 0);
   f->hmf_bool = !!b;
 }
 
@@ -329,7 +306,7 @@ htsmsg_set_bool(htsmsg_t *msg, const char *name, int b)
 void
 htsmsg_add_s64(htsmsg_t *msg, const char *name, int64_t s64)
 {
-  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_S64, HMF_NAME_INALLOCED, 0);
+  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_S64, 0, 0);
   f->hmf_s64 = s64;
 }
 
@@ -341,7 +318,7 @@ htsmsg_set_s64(htsmsg_t *msg, const char *name, int64_t s64)
 {
   htsmsg_field_t *f = htsmsg_field_find(msg, name);
   if (!f)
-    f = htsmsg_field_add(msg, name, HMF_S64, HMF_NAME_INALLOCED, 0);
+    f = htsmsg_field_add(msg, name, HMF_S64, 0, 0);
   if (f->hmf_type != HMF_S64)
     return 1;
   f->hmf_s64 = s64;
@@ -355,7 +332,7 @@ htsmsg_set_s64(htsmsg_t *msg, const char *name, int64_t s64)
 void
 htsmsg_add_dbl(htsmsg_t *msg, const char *name, double dbl)
 {
-  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_DBL, HMF_NAME_INALLOCED, 0);
+  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_DBL, 0, 0);
   f->hmf_dbl = dbl;
 }
 
@@ -367,8 +344,7 @@ htsmsg_add_dbl(htsmsg_t *msg, const char *name, double dbl)
 void
 htsmsg_add_str(htsmsg_t *msg, const char *name, const char *str)
 {
-  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_STR, HMF_NAME_INALLOCED,
-                                       strlen(str) + 1);
+  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_STR, 0, strlen(str) + 1);
   strcpy((char *)f->hmf_str, str);
   f->hmf_flags |= HMF_INALLOCED;
 }
@@ -475,7 +451,7 @@ htsmsg_field_set_bin(htsmsg_field_t *f, const void *bin, size_t len)
   }
   else if (f->hmf_flags & HMF_INALLOCED) {
     if (f->hmf_binsize >= len) {
-      memmove((char *)f->hmf_bin, bin, len);
+      memmove((void *)f->hmf_bin, bin, len);
       f->hmf_binsize = len;
       return 0;
     }
@@ -516,7 +492,7 @@ htsmsg_field_set_bin_force(htsmsg_field_t *f, const void *bin, size_t len)
 void
 htsmsg_add_bin(htsmsg_t *msg, const char *name, const void *bin, size_t len)
 {
-  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_BIN, HMF_NAME_INALLOCED, len);
+  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_BIN, 0, len);
   f->hmf_flags |= HMF_INALLOCED;
   memcpy((void *)f->hmf_bin, bin, len);
 }
@@ -527,7 +503,7 @@ htsmsg_add_bin(htsmsg_t *msg, const char *name, const void *bin, size_t len)
 void
 htsmsg_add_binptr(htsmsg_t *msg, const char *name, const void *bin, size_t len)
 {
-  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_BIN, HMF_NAME_INALLOCED, 0);
+  htsmsg_field_t *f = htsmsg_field_add(msg, name, HMF_BIN, 0, 0);
   f->hmf_bin = bin;
   f->hmf_binsize = len;
 }
@@ -563,8 +539,7 @@ htsmsg_add_msg(htsmsg_t *msg, const char *name, htsmsg_t *sub)
 {
   htsmsg_field_t *f;
 
-  f = htsmsg_field_add(msg, name, sub->hm_islist ? HMF_LIST : HMF_MAP,
-                      HMF_NAME_INALLOCED, 0);
+  f = htsmsg_field_add(msg, name, sub->hm_islist ? HMF_LIST : HMF_MAP, 0, 0);
   return htsmsg_field_set_msg(f, sub);
 }
 
index 6daf11892c1b898eabb129e3d0da0430a04ab282..26b01e5a190bcd275592bc15499c4a97ac2cfd54 100644 (file)
@@ -62,8 +62,6 @@ typedef struct htsmsg_field {
 
 #define HMF_ALLOCED        0x1
 #define HMF_INALLOCED      0x2
-#define HMF_NAME_INALLOCED 0x4
-#define HMF_NAME_ALLOCED   0x8
 
   union {
     int64_t  s64;
index d4bbf3532b4d2c48cfd16713b9a062822ede590a..bd6a2f0c65d7025eff9132bfc0a92ca841fc7521 100644 (file)
@@ -33,7 +33,7 @@ static int
 htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len)
 {
   uint_fast32_t type, namelen, datalen;
-  size_t tlen;
+  size_t tlen, nlen;
   htsmsg_field_t *f;
   htsmsg_t *sub;
   uint64_t u64;
@@ -54,8 +54,8 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len)
     if(len < namelen + datalen)
       return -1;
 
-    tlen = sizeof(htsmsg_field_t) +
-           (namelen ? namelen + 1 : 0) +
+    nlen = namelen ? namelen + 1 : 0;
+    tlen = sizeof(htsmsg_field_t) + nlen +
            (type == HMF_STR ? datalen + 1 : 0);
     f = malloc(tlen);
     if (f == NULL)
@@ -65,6 +65,7 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len)
     memoryinfo_alloc(&htsmsg_field_memoryinfo, tlen);
 #endif
     f->hmf_type  = type;
+    f->hmf_flags = 0;
 
     if(namelen > 0) {
       f->hmf_name = f->hmf_edata;
@@ -73,18 +74,16 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len)
 
       buf += namelen;
       len -= namelen;
-      f->hmf_flags = HMF_NAME_INALLOCED;
-
     } else {
-      f->hmf_name  = NULL;
-      f->hmf_flags = 0;
+      f->hmf_name = NULL;
     }
 
     switch(type) {
     case HMF_STR:
-      f->hmf_str = f->hmf_edata + (namelen ? namelen + 1 : 0);
+      f->hmf_str = f->hmf_edata + nlen;
       memcpy((char *)f->hmf_str, buf, datalen);
       ((char *)f->hmf_str)[datalen] = 0;
+      f->hmf_flags |= HMF_INALLOCED;
       break;
 
     case HMF_BIN: