]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
htsmg: align the access to list/dictionary
authorJaroslav Kysela <perex@perex.cz>
Tue, 16 Oct 2018 07:01:25 +0000 (09:01 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 16 Oct 2018 07:01:38 +0000 (09:01 +0200)
34 files changed:
src/access.c
src/bouquet.c
src/channels.c
src/config.c
src/descrambler/caclient.c
src/dvr/dvr_autorec.c
src/dvr/dvr_config.c
src/dvr/dvr_db.c
src/dvr/dvr_timerec.c
src/epg.c
src/epggrab.c
src/epggrab/module.c
src/epggrab/module/eit.c
src/epggrab/module/opentv.c
src/epggrab/module/xmltv.c
src/epggrab/otamux.c
src/esfilter.c
src/htsmsg.c
src/htsmsg.h
src/htsmsg_binary.c
src/htsmsg_binary2.c
src/htsmsg_json.c
src/imagecache.c
src/input/mpegts/iptv/iptv.c
src/input/mpegts/iptv/iptv_mux.c
src/input/mpegts/mpegts_mux_dvb.c
src/input/mpegts/mpegts_mux_sched.c
src/input/mpegts/mpegts_network_dvb.c
src/lang_str.c
src/notify.c
src/profile.c
src/prop.c
src/transcoding/codec/profile.c
src/webui/xmltv.c

index bf93919c53df43c85adf2ab9e18098f91bc7ef7f..5c524a82ec4a9d9d0e2425eb2efea58b1abb9121 100644 (file)
@@ -2236,7 +2236,7 @@ access_init(int createdefault, int noacl)
   if ((c = hts_settings_load("ipblock")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(m = htsmsg_field_get_map(f))) continue;
-      (void)ipblock_entry_create(f->hmf_name, m);
+      (void)ipblock_entry_create(htsmsg_field_name(f), m);
     }
     htsmsg_destroy(c);
   }
@@ -2245,7 +2245,7 @@ access_init(int createdefault, int noacl)
   if ((c = hts_settings_load("passwd")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(m = htsmsg_field_get_map(f))) continue;
-      (void)passwd_entry_create(f->hmf_name, m);
+      (void)passwd_entry_create(htsmsg_field_name(f), m);
     }
     htsmsg_destroy(c);
   }
@@ -2254,7 +2254,7 @@ access_init(int createdefault, int noacl)
   if ((c = hts_settings_load("accesscontrol")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(m = htsmsg_field_get_map(f))) continue;
-      (void)access_entry_create(f->hmf_name, m);
+      (void)access_entry_create(htsmsg_field_name(f), m);
     }
     htsmsg_destroy(c);
     access_entry_reindex();
index d6f2686849215fa77b0d6af9c4b9f91fa4206cd0..96c01f0d4272ad2e7bbd67e97acb686993a53fac 100644 (file)
@@ -1266,7 +1266,7 @@ bouquet_init(void)
   if ((c = hts_settings_load("bouquet")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(m = htsmsg_field_get_map(f))) continue;
-      bq = bouquet_create(f->hmf_name, m, NULL, NULL);
+      bq = bouquet_create(htsmsg_field_name(f), m, NULL, NULL);
       if (bq)
         bq->bq_saveflag = 0;
     }
@@ -1296,7 +1296,7 @@ bouquet_service_resolve(void)
         if ((e = htsmsg_field_get_map(f)) == NULL) continue;
         lcn = htsmsg_get_s64_or_default(e, "lcn", 0);
         tag = htsmsg_get_str(e, "tag");
-        s = service_find_by_uuid(f->hmf_name);
+        s = service_find_by_uuid(htsmsg_field_name(f));
         if (s)
           bouquet_add_service(bq, s, lcn, tag);
       }
index bf7e186f0cfece446f1faa963eb03e68e7890420..996d81250da8d618bee0f2d0d5f0a542287c0995 100644 (file)
@@ -1464,7 +1464,7 @@ channel_init ( void )
   channel_in_load = 1;
   HTSMSG_FOREACH(f, c) {
     if (!(e = htsmsg_field_get_map(f))) continue;
-    (void)channel_create(f->hmf_name, e, NULL);
+    (void)channel_create(htsmsg_field_name(f), e, NULL);
   }
   channel_in_load = 0;
   htsmsg_destroy(c);
@@ -1967,7 +1967,7 @@ channel_tag_init ( void )
   if ((c = hts_settings_load("channel/tag")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(m = htsmsg_field_get_map(f))) continue;
-      (void)channel_tag_create(f->hmf_name, m);
+      (void)channel_tag_create(htsmsg_field_name(f), m);
     }
     htsmsg_destroy(c);
   }
index 984d20c3d74bc4e0ef7f9d2702a113241d0eaf1f..35548a59a6e1857c7e1cb98f0731b5096ef61f4e 100644 (file)
@@ -265,7 +265,7 @@ config_migrate_v1_dvb_network
     htsmsg_destroy(mux);
 
     /* Services */
-    config_migrate_v1_dvb_svcs(f->hmf_name, ubuf, ubuf2, channels);
+    config_migrate_v1_dvb_svcs(htsmsg_field_name(f), ubuf, ubuf2, channels);
   }
 
   /* Add properties derived from network */
@@ -295,7 +295,7 @@ config_migrate_v1_dvr ( const char *path, htsmsg_t *channels )
         if ((str = config_migrate_v1_chn_name_to_uuid(channels, str))) {
           htsmsg_delete_field(m, "channel");
           htsmsg_add_str(m, "channel", str);
-          hts_settings_save(m, "%s/%s", path, f->hmf_name);
+          hts_settings_save(m, "%s/%s", path, htsmsg_field_name(f));
         }
         htsmsg_destroy(m);
       }
@@ -333,7 +333,7 @@ config_migrate_v1_epggrab ( const char *path, htsmsg_t *channels )
           htsmsg_add_str(chns, NULL, str);
       }
       htsmsg_add_msg(m, "channels", chns);
-      hts_settings_save(m, "%s/%s", path, f->hmf_name);
+      hts_settings_save(m, "%s/%s", path, htsmsg_field_name(f));
       htsmsg_destroy(m);
     }
     htsmsg_destroy(c);
@@ -369,7 +369,7 @@ config_migrate_v1 ( void )
       /* Build entry */
       uuid_set(&chnu, NULL);
       m = htsmsg_create_map();
-      htsmsg_add_u32(m, "channelid", atoi(f->hmf_name));
+      htsmsg_add_u32(m, "channelid", atoi(htsmsg_field_name(f)));
       htsmsg_add_str(m, "uuid", uuid_get_hex(&chnu, ubufc));
       htsmsg_add_msg(m, "services", htsmsg_create_list());
       if (!htsmsg_get_u32(e, "dvr_extra_time_pre", &u32))
@@ -454,7 +454,7 @@ config_migrate_v1 ( void )
   if ((c = hts_settings_load_r(2, "dvbmuxes"))) {
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      config_migrate_v1_dvb_network(f->hmf_name, e, channels);
+      config_migrate_v1_dvb_network(htsmsg_field_name(f), e, channels);
     }
     htsmsg_destroy(c);
   }
@@ -550,7 +550,7 @@ config_migrate_v5 ( void )
         str = tvh_strdupa(str+5);
         htsmsg_delete_field(e, "class");
         htsmsg_add_str(e, "class", str);
-        hts_settings_save(e, "input/dvb/networks/%s/config", f->hmf_name);
+        hts_settings_save(e, "input/dvb/networks/%s/config", htsmsg_field_name(f));
       }
     }
   }
@@ -640,7 +640,7 @@ config_migrate_v6 ( void )
         if ((ch = htsmsg_get_map_by_field(f))) {
           if ((str = htsmsg_get_str(ch, "xmltv-channel"))) {
             if ((xc = htsmsg_get_map(xchs, str))) {
-              htsmsg_add_u32(xc, "channel", atoi(f->hmf_name));
+              htsmsg_add_u32(xc, "channel", atoi(htsmsg_field_name(f)));
             }
           }
         }
@@ -649,7 +649,7 @@ config_migrate_v6 ( void )
     if (xchs) {
       HTSMSG_FOREACH(f, xchs) {
         if ((xc = htsmsg_get_map_by_field(f))) {
-          hts_settings_save(xc, "epggrab/xmltv/channels/%s", f->hmf_name);
+          hts_settings_save(xc, "epggrab/xmltv/channels/%s", htsmsg_field_name(f));
         }
       }
     }
@@ -697,7 +697,7 @@ config_migrate_simple ( const char *dir, htsmsg_t *list,
     if (modify)
       modify(e, id, ubuf, aux);
     hts_settings_save(e, "%s/%s", dir, ubuf);
-    hts_settings_remove("%s/%s", dir, f->hmf_name);
+    hts_settings_remove("%s/%s", dir, htsmsg_field_name(f));
   }
 
   htsmsg_destroy(c);
@@ -777,7 +777,7 @@ config_migrate_v8 ( void )
       htsmsg_add_msg(e, "tags", htsmsg_copy(m));
       htsmsg_delete_field(e, "tags_new");
     }
-    hts_settings_save(e, "channel/%s", f->hmf_name);
+    hts_settings_save(e, "channel/%s", htsmsg_field_name(f));
   }
   htsmsg_destroy(ch);
 }
@@ -859,20 +859,20 @@ config_migrate_v9 ( void )
     /* step 1: only "config" */
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      if (strcmp(f->hmf_name, "config")) continue;
-      htsmsg_add_str(e, "name", f->hmf_name + 6);
+      if (strcmp(htsmsg_field_name(f), "config")) continue;
+      htsmsg_add_str(e, "name", htsmsg_field_name(f) + 6);
       uuid_set(&u, NULL);
-      hts_settings_remove("dvr/%s", f->hmf_name);
+      hts_settings_remove("dvr/%s", htsmsg_field_name(f));
       hts_settings_save(e, "dvr/config/%s", uuid_get_hex(&u, ubuf));
     }
     /* step 2: reset (without "config") */
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      if (strcmp(f->hmf_name, "config") == 0) continue;
-      if (strncmp(f->hmf_name, "config", 6)) continue;
-      htsmsg_add_str(e, "name", f->hmf_name + 6);
+      if (strcmp(htsmsg_field_name(f), "config") == 0) continue;
+      if (strncmp(htsmsg_field_name(f), "config", 6)) continue;
+      htsmsg_add_str(e, "name", htsmsg_field_name(f) + 6);
       uuid_set(&u, NULL);
-      hts_settings_remove("dvr/%s", f->hmf_name);
+      hts_settings_remove("dvr/%s", htsmsg_field_name(f));
       hts_settings_save(e, "dvr/config/%s", uuid_get_hex(&u, ubuf));
     }
     htsmsg_destroy(c);
@@ -881,8 +881,8 @@ config_migrate_v9 ( void )
   if ((c = hts_settings_load("autorec")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      hts_settings_remove("autorec/%s", f->hmf_name);
-      hts_settings_save(e, "dvr/autorec/%s", f->hmf_name);
+      hts_settings_remove("autorec/%s", htsmsg_field_name(f));
+      hts_settings_save(e, "dvr/autorec/%s", htsmsg_field_name(f));
     }
   }
 }
@@ -899,8 +899,8 @@ config_migrate_move ( const char *dir,
 
   HTSMSG_FOREACH(f, c) {
     if (!(e = htsmsg_field_get_map(f))) continue;
-    hts_settings_save(e, "%s/%s", newdir, f->hmf_name);
-    hts_settings_remove("%s/%s", dir, f->hmf_name);
+    hts_settings_save(e, "%s/%s", newdir, htsmsg_field_name(f));
+    hts_settings_remove("%s/%s", dir, htsmsg_field_name(f));
   }
 
   htsmsg_destroy(c);
@@ -926,7 +926,7 @@ config_find_uuid( htsmsg_t *map, const char *name, const char *value )
     if (!(e = htsmsg_field_get_map(f))) continue;
     if ((s = htsmsg_get_str(e, name)) != NULL) {
       if (!strcmp(s, value))
-        return f->hmf_name;
+        return htsmsg_field_name(f);
     }
   }
   return NULL;
@@ -1044,16 +1044,16 @@ config_migrate_v12 ( void )
   if ((c = hts_settings_load("cwc")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      hts_settings_remove("cwc/%s", f->hmf_name);
-      hts_settings_save(e, "caclient/%s", f->hmf_name);
+      hts_settings_remove("cwc/%s", htsmsg_field_name(f));
+      hts_settings_save(e, "caclient/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
   if ((c = hts_settings_load("capmt")) != NULL) {
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      hts_settings_remove("capmt/%s", f->hmf_name);
-      hts_settings_save(e, "caclient/%s", f->hmf_name);
+      hts_settings_remove("capmt/%s", htsmsg_field_name(f));
+      hts_settings_save(e, "caclient/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
@@ -1078,7 +1078,7 @@ config_migrate_v13 ( void )
       }
       htsmsg_delete_field(e, "rewrite-pat");
       htsmsg_delete_field(e, "rewrite-pmt");
-      hts_settings_save(e, "dvr/config/%s", f->hmf_name);
+      hts_settings_save(e, "dvr/config/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
@@ -1119,7 +1119,7 @@ config_migrate_v14 ( void )
       }
       if (!htsmsg_get_s32(e, "scodec", &i))
         htsmsg_delete_field(e, "scodec");
-      hts_settings_save(e, "profile/%s", f->hmf_name);
+      hts_settings_save(e, "profile/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
@@ -1137,7 +1137,7 @@ config_migrate_v15 ( void )
       if (!(e = htsmsg_field_get_map(f))) continue;
       if (htsmsg_get_s32(e, "timeout", &i)) {
         htsmsg_set_s32(e, "timeout", 5);
-        hts_settings_save(e, "profile/%s", f->hmf_name);
+        hts_settings_save(e, "profile/%s", htsmsg_field_name(f));
       }
     }
     htsmsg_destroy(c);
@@ -1198,7 +1198,7 @@ config_migrate_v16 ( void )
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
       config_modify_dvrauto(e);
-      hts_settings_save(e, "dvr/autorec/%s", f->hmf_name);
+      hts_settings_save(e, "dvr/autorec/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
@@ -1219,7 +1219,7 @@ config_migrate_v17 ( void )
         if (strcmp(htsmsg_get_str(e, "name") ?: "", "htsp") == 0)
           p = PROFILE_SPRIO_IMPORTANT;
         htsmsg_set_s32(e, "priority", p);
-        hts_settings_save(e, "profile/%s", f->hmf_name);
+        hts_settings_save(e, "profile/%s", htsmsg_field_name(f));
       }
     }
     htsmsg_destroy(c);
@@ -1246,7 +1246,7 @@ config_migrate_v18 ( void )
       htsmsg_add_msg(l, NULL, m);
       htsmsg_delete_field(e, "filename");
       htsmsg_add_msg(e, "files", l);
-      hts_settings_save(e, "dvr/log/%s", f->hmf_name);
+      hts_settings_save(e, "dvr/log/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
@@ -1274,7 +1274,7 @@ config_migrate_v19 ( void )
       uuid_set(&u, NULL);
       hts_settings_save(m, "passwd/%s", uuid_get_hex(&u, ubuf));
       htsmsg_delete_field(e, "password2");
-      hts_settings_save(e, "accesscontrol/%s", f->hmf_name);
+      hts_settings_save(e, "accesscontrol/%s", htsmsg_field_name(f));
     }
   }
   htsmsg_destroy(c);
@@ -1309,7 +1309,7 @@ config_migrate_v20 ( void )
       config_migrate_v20_helper(e, "profile");
       config_migrate_v20_helper(e, "dvr_config");
       config_migrate_v20_helper(e, "channel_tag");
-      hts_settings_save(e, "accesscontrol/%s", f->hmf_name);
+      hts_settings_save(e, "accesscontrol/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
@@ -1334,11 +1334,11 @@ config_migrate_v21 ( void )
       HTSMSG_FOREACH(f, m) {
         s64 = 0;
         htsmsg_field_get_s64(f, &s64);
-        if ((s64 || !strcmp(str ?: "", f->hmf_name)) &&
-            f->hmf_name[0]) {
+        if ((s64 || !strcmp(str ?: "", htsmsg_field_name(f))) &&
+            htsmsg_field_name(f)[0]) {
           a = htsmsg_create_map();
           htsmsg_add_bool(a, "enabled", 1);
-          htsmsg_add_msg(e, f->hmf_name, a);
+          htsmsg_add_msg(e, htsmsg_field_name(f), a);
         }
       }
     }
@@ -1391,7 +1391,7 @@ config_migrate_v23_one ( const char *modname )
       m = htsmsg_field_get_map(f);
       if (m == NULL) continue;
       n = htsmsg_copy(m);
-      htsmsg_add_str(n, "id", f->hmf_name);
+      htsmsg_add_str(n, "id", htsmsg_field_name(f));
       maj = htsmsg_get_u32_or_default(m, "major", 0);
       min = htsmsg_get_u32_or_default(m, "minor", 0);
       num = (maj * CHANNEL_SPLIT) + min;
@@ -1400,7 +1400,7 @@ config_migrate_v23_one ( const char *modname )
       htsmsg_delete_field(n, "major");
       htsmsg_delete_field(n, "minor");
       uuid_set(&u, NULL);
-      hts_settings_remove("epggrab/%s/channels/%s", modname, f->hmf_name);
+      hts_settings_remove("epggrab/%s/channels/%s", modname, htsmsg_field_name(f));
       hts_settings_save(n, "epggrab/%s/channels/%s", modname, uuid_get_hex(&u, ubuf));
       htsmsg_destroy(n);
     }
@@ -1454,7 +1454,7 @@ config_migrate_v24 ( void )
       if (!(e = htsmsg_field_get_map(f))) continue;
       config_migrate_v24_helper(streaming_list, e, "streaming");
       config_migrate_v24_helper(dvr_list, e, "dvr");
-      hts_settings_save(e, "accesscontrol/%s", f->hmf_name);
+      hts_settings_save(e, "accesscontrol/%s", htsmsg_field_name(f));
     }
     htsmsg_destroy(c);
   }
@@ -1648,8 +1648,8 @@ config_check_one ( const char *dir )
 
   HTSMSG_FOREACH(f, c) {
     if (!(e = htsmsg_field_get_map(f))) continue;
-    if (strlen(f->hmf_name) != UUID_HEX_SIZE - 1) {
-      tvherror(LS_START, "filename %s/%s/%s is invalid", hts_settings_get_root(), dir, f->hmf_name);
+    if (strlen(htsmsg_field_name(f)) != UUID_HEX_SIZE - 1) {
+      tvherror(LS_START, "filename %s/%s/%s is invalid", hts_settings_get_root(), dir, htsmsg_field_name(f));
       exit(1);
     }
   }
index eb387eb993611c861d9df938a824e4459f417bb1..f28020fc83177668ff020d16cea33ca22cb35714 100644 (file)
@@ -432,7 +432,7 @@ caclient_init(void)
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f)))
         continue;
-      caclient_create(f->hmf_name, e, 0);
+      caclient_create(htsmsg_field_name(f), e, 0);
     }
     htsmsg_destroy(c);
   }
index ed7c9cd94115cc11926c7d8c0145ae6dd042a00d..528e44035d40f653761e562d8d15bb25d5802c1e 100644 (file)
@@ -1410,7 +1410,7 @@ dvr_autorec_init(void)
     HTSMSG_FOREACH(f, l) {
       if((c = htsmsg_get_map_by_field(f)) == NULL)
         continue;
-      (void)dvr_autorec_create(f->hmf_name, c);
+      (void)dvr_autorec_create(htsmsg_field_name(f), c);
     }
     htsmsg_destroy(l);
   }
index 3be3f07ec7003a5d4f3721f350bb61729e3914af..ec6a147cc3348fb9a8bbb51c11a8e5a96d73c77a 100644 (file)
@@ -1447,7 +1447,7 @@ dvr_config_init(void)
   if ((l = hts_settings_load("dvr/config")) != NULL) {
     HTSMSG_FOREACH(f, l) {
       if ((m = htsmsg_get_map_by_field(f)) == NULL) continue;
-      (void)dvr_config_create(NULL, f->hmf_name, m);
+      (void)dvr_config_create(NULL, htsmsg_field_name(f), m);
     }
     htsmsg_destroy(l);
   }
index e9aeea2b74ce88f37ac1a29c901f433689283d3e..35242d6ee128243c0b84c9a3fc8124526d748a71 100644 (file)
@@ -4835,12 +4835,12 @@ dvr_entry_init(void)
       parent = htsmsg_get_str(c, "parent");
       child = htsmsg_get_str(c, "child");
       if (parent && parent[0])
-        htsmsg_set_str(rere, parent, f->hmf_name);
+        htsmsg_set_str(rere, parent, htsmsg_field_name(f));
       if (child && child[0])
-        htsmsg_set_str(rere, f->hmf_name, child);
+        htsmsg_set_str(rere, htsmsg_field_name(f), child);
       htsmsg_delete_field(c, "parent");
       htsmsg_delete_field(c, "child");
-      (void)dvr_entry_create(f->hmf_name, c, 0);
+      (void)dvr_entry_create(htsmsg_field_name(f), c, 0);
     }
     htsmsg_destroy(l);
   }
@@ -4849,7 +4849,7 @@ dvr_entry_init(void)
   HTSMSG_FOREACH(f, rere) {
     if((child = htsmsg_field_get_str(f)) == NULL)
       continue;
-    parent = f->hmf_name;
+    parent = htsmsg_field_name(f);
     de1 = dvr_entry_find_by_uuid(parent);
     de2 = dvr_entry_find_by_uuid(child);
     dvr_entry_change_parent_child(de1, de2, NULL, 0);
@@ -4876,4 +4876,5 @@ dvr_entry_done(void)
       dvr_rec_unsubscribe(de);
     dvr_entry_destroy(de, 0);
   }
+  string_list_destroy(dvr_fanart_to_prefetch);
 }
index e46a6a3f23166a14cb29e9fb201eb50725d5a5a5..e840176c5591c980ddfec6a9bdcd9ba5fe023d78 100644 (file)
@@ -709,7 +709,7 @@ dvr_timerec_init(void)
     HTSMSG_FOREACH(f, l) {
       if((c = htsmsg_get_map_by_field(f)) == NULL)
         continue;
-      (void)dvr_timerec_create(f->hmf_name, c);
+      (void)dvr_timerec_create(htsmsg_field_name(f), c);
     }
     htsmsg_destroy(l);
   }
index b83ff72ed75315f10d5a5425836869c32ac7c8e6..7fca87c043db15e7d930273d3c63683fd6bee612 100644 (file)
--- a/src/epg.c
+++ b/src/epg.c
@@ -1286,7 +1286,7 @@ int epg_broadcast_set_credits
           } else {
             add_sep = 1;
           }
-          lang_str_append(b->credits_cached, f->hmf_name, NULL);
+          lang_str_append(b->credits_cached, htsmsg_field_name(f), NULL);
         }
       } else {
         if (b->credits_cached) {
index ee158f768fbad5c8fc6277ac6a1c57df893f2e9d..bc626c0d51c492d6f72996c7f387372e69b903af 100644 (file)
@@ -238,7 +238,7 @@ static void _epggrab_load ( void )
     idnode_load(&epggrab_conf.idnode, m);
     if ((a = htsmsg_get_map(m, "modules"))) {
       HTSMSG_FOREACH(f, a) {
-        mod = epggrab_module_find_by_id(f->hmf_name);
+        mod = epggrab_module_find_by_id(htsmsg_field_name(f));
         map = htsmsg_field_get_map(f);
         if (mod && map) {
           idnode_load(&mod->idnode, map);
index bf4a9533aa0e6b13f729bff526b88ea2090af018..559d2ff62ebb7873a7d400f3b0c6af636d4574a0 100644 (file)
@@ -120,8 +120,8 @@ epggrab_module_ota_scrapper_config_list ( void *o, const char *lang )
     htsmsg_field_t *f;
     HTSMSG_FOREACH(f, config) {
       e = htsmsg_create_map();
-      htsmsg_add_str(e, "key", f->hmf_name);
-      htsmsg_add_str(e, "val", f->hmf_name);
+      htsmsg_add_str(e, "key", htsmsg_field_name(f));
+      htsmsg_add_str(e, "val", htsmsg_field_name(f));
       htsmsg_add_msg(m, NULL, e);
     }
     htsmsg_destroy(config);
@@ -446,7 +446,7 @@ void epggrab_module_channels_load ( const char *modid )
         if (mod == NULL || strcmp(mod->id, id))
           mod = epggrab_module_find_by_id(id);
         if (mod)
-          epggrab_channel_create(mod, e, f->hmf_name);
+          epggrab_channel_create(mod, e, htsmsg_field_name(f));
       }
     }
     htsmsg_destroy(m);
index fdc0d8e35151c127192f9d026041e960562c3604..4f71e74573e57d16bf8df63e2a45cc5e852a257a 100644 (file)
@@ -1556,7 +1556,7 @@ static void eit_init_one ( const char *id, htsmsg_t *conf )
   if (map) {
     HTSMSG_FOREACH(f, map) {
       nit = calloc(1, sizeof(*nit));
-      nit->name = f->hmf_name[0] ? strdup(f->hmf_name) : NULL;
+      nit->name = htsmsg_field_name(f)[0] ? strdup(htsmsg_field_name(f)) : NULL;
       if ((e = htsmsg_field_get_map(f)) != NULL) {
         eit_parse_list(e, "onid", nit->onid, ARRAY_SIZE(nit->onid), &nit->onid_count);
         eit_parse_list(e, "tsid", nit->tsid, ARRAY_SIZE(nit->tsid), &nit->tsid_count);
@@ -1580,13 +1580,13 @@ static void eit_init_one ( const char *id, htsmsg_t *conf )
   map = htsmsg_get_map(conf, "hacks");
   if (map) {
     HTSMSG_FOREACH(f, map) {
-      if (strcmp(f->hmf_name, "interest-4e") == 0)
+      if (strcmp(htsmsg_field_name(f), "interest-4e") == 0)
         priv->hacks |= EIT_HACK_INTEREST4E;
-      else if (strcmp(f->hmf_name, "extra-mux-lookup") == 0)
+      else if (strcmp(htsmsg_field_name(f), "extra-mux-lookup") == 0)
         priv->hacks |= EIT_HACK_EXTRAMUXLOOKUP;
-      else if (strcmp(f->hmf_name, "svc-net-lookup") == 0)
+      else if (strcmp(htsmsg_field_name(f), "svc-net-lookup") == 0)
         priv->hacks |= EIT_HACK_EXTRAMUXLOOKUP;
-      else if (strcmp(f->hmf_name, "bat") == 0) {
+      else if (strcmp(htsmsg_field_name(f), "bat") == 0) {
         if (!(e = htsmsg_field_get_map(f))) continue;
         priv->bat_pid = htsmsg_get_s32_or_default(e, "pid", 0);
       }
@@ -1619,7 +1619,7 @@ void eit_init ( void )
   }
   HTSMSG_FOREACH(f, c) {
     if (!(e = htsmsg_field_get_map(f))) continue;
-    eit_init_one(f->hmf_name, e);
+    eit_init_one(htsmsg_field_name(f), e);
   }
   htsmsg_destroy(c);
 }
index ad573df3ce85dcea1dcc5f3bede477ba3fd66806..936ebb468a678a86447d94c09cbd059420faabd9 100644 (file)
@@ -807,12 +807,12 @@ static void _opentv_genre_load ( htsmsg_t *m )
   htsmsg_t *e;
   htsmsg_field_t *f;
   HTSMSG_FOREACH(f, m) {
-    if ((e = htsmsg_get_list(m, f->hmf_name))) {
-      if ((r = _opentv_genre_load_one(f->hmf_name, e))) {
+    if ((e = htsmsg_get_list(m, htsmsg_field_name(f)))) {
+      if ((r = _opentv_genre_load_one(htsmsg_field_name(f), e))) {
         if (r > 0) 
-          tvhdebug(LS_OPENTV, "genre map %s loaded", f->hmf_name);
+          tvhdebug(LS_OPENTV, "genre map %s loaded", htsmsg_field_name(f));
         else
-          tvhwarn(LS_OPENTV, "genre map %s failed", f->hmf_name);
+          tvhwarn(LS_OPENTV, "genre map %s failed", htsmsg_field_name(f));
       }
     }
   }
@@ -846,12 +846,12 @@ static void _opentv_dict_load ( htsmsg_t *m )
   htsmsg_t *e;
   htsmsg_field_t *f;
   HTSMSG_FOREACH(f, m) {
-    if ((e = htsmsg_get_list(m, f->hmf_name))) {
-      if ((r = _opentv_dict_load_one(f->hmf_name, e))) {
+    if ((e = htsmsg_get_list(m, htsmsg_field_name(f)))) {
+      if ((r = _opentv_dict_load_one(htsmsg_field_name(f), e))) {
         if (r > 0) 
-          tvhdebug(LS_OPENTV, "dictionary %s loaded", f->hmf_name);
+          tvhdebug(LS_OPENTV, "dictionary %s loaded", htsmsg_field_name(f));
         else
-          tvhwarn(LS_OPENTV, "dictionary %s failed", f->hmf_name);
+          tvhwarn(LS_OPENTV, "dictionary %s failed", htsmsg_field_name(f));
       }
     }
   } 
@@ -965,11 +965,11 @@ static void _opentv_prov_load ( htsmsg_t *m )
   htsmsg_field_t *f;
   HTSMSG_FOREACH(f, m) {
     if ((e = htsmsg_get_map_by_field(f))) {
-      if ((r = _opentv_prov_load_one(f->hmf_name, e))) {
+      if ((r = _opentv_prov_load_one(htsmsg_field_name(f), e))) {
         if (r > 0)
-          tvhdebug(LS_OPENTV, "provider %s loaded", f->hmf_name);
+          tvhdebug(LS_OPENTV, "provider %s loaded", htsmsg_field_name(f));
         else
-          tvhwarn(LS_OPENTV, "provider %s failed", f->hmf_name);
+          tvhwarn(LS_OPENTV, "provider %s failed", htsmsg_field_name(f));
       }
     }
   }
index 03ddbdb362d508f3fc39d371e149957da46ca8c1..ce6fb4f44de4e66b1810b66255f9a479e6dd7da8 100644 (file)
@@ -236,7 +236,7 @@ static void get_episode_info
 
   HTSMSG_FOREACH(f, tags) {
     if((c = htsmsg_get_map_by_field(f)) == NULL ||
-       strcmp(f->hmf_name, "episode-num") ||
+       strcmp(htsmsg_field_name(f), "episode-num") ||
        (a = htsmsg_get_map(c, "attrib")) == NULL ||
        (cdata = htsmsg_get_str(c, "cdata")) == NULL ||
        (sys = htsmsg_get_str(a, "system")) == NULL)
@@ -327,7 +327,7 @@ xmltv_parse_accessibility
   const char *str;
 
   HTSMSG_FOREACH(f, m) {
-    if(!strcmp(f->hmf_name, "subtitles")) {
+    if(!strcmp(htsmsg_field_name(f), "subtitles")) {
       if ((tag = htsmsg_get_map_by_field(f))) {
         str = htsmsg_xml_get_attr_str(tag, "type");
         if (str && !strcmp(str, "teletext"))
@@ -335,7 +335,7 @@ xmltv_parse_accessibility
         else if (str && !strcmp(str, "deaf-signed"))
           save |= epg_broadcast_set_is_deafsigned(ebc, 1, changes);
       }
-    } else if (!strcmp(f->hmf_name, "audio-described")) {
+    } else if (!strcmp(htsmsg_field_name(f), "audio-described")) {
       save |= epg_broadcast_set_is_audio_desc(ebc, 1, changes);
     }
   }
@@ -453,7 +453,7 @@ static int _xmltv_parse_age_rating
 
   htsmsg_field_t *f;
   HTSMSG_FOREACH(f, body) {
-    if (!strcmp(f->hmf_name, "rating") && (rating = htsmsg_get_map_by_field(f))) {
+    if (!strcmp(htsmsg_field_name(f), "rating") && (rating = htsmsg_get_map_by_field(f))) {
       if ((tags  = htsmsg_get_map(rating, "tags"))) {
         if ((s1 = htsmsg_xml_get_cdata_str(tags, "value"))) {
           /* We map some common ratings since some movies only
@@ -492,7 +492,7 @@ static epg_genre_list_t
   htsmsg_field_t *f;
   epg_genre_list_t *egl = NULL;
   HTSMSG_FOREACH(f, tags) {
-    if (!strcmp(f->hmf_name, "category") && (e = htsmsg_get_map_by_field(f))) {
+    if (!strcmp(htsmsg_field_name(f), "category") && (e = htsmsg_get_map_by_field(f))) {
       if (!egl) egl = calloc(1, sizeof(epg_genre_list_t));
       epg_genre_list_add_by_str(egl, htsmsg_get_str(e, "cdata"), NULL);
     }
@@ -511,7 +511,7 @@ _xmltv_parse_lang_str ( lang_str_t **ls, htsmsg_t *tags, const char *tname )
   const char *lang;
 
   HTSMSG_FOREACH(f, tags) {
-    if (!strcmp(f->hmf_name, tname) && (e = htsmsg_get_map_by_field(f))) {
+    if (!strcmp(htsmsg_field_name(f), tname) && (e = htsmsg_get_map_by_field(f))) {
       if (!*ls) *ls = lang_str_create();
       lang = NULL;
       if ((attrib = htsmsg_get_map(e, "attrib")))
@@ -532,7 +532,7 @@ static string_list_t *
   string_list_t *tag_list = NULL;
 
   HTSMSG_FOREACH(f, tags) {
-    if (!strcmp(f->hmf_name, tagname) && (e = htsmsg_get_map_by_field(f))) {
+    if (!strcmp(htsmsg_field_name(f), tagname) && (e = htsmsg_get_map_by_field(f))) {
       const char *str = htsmsg_get_str(e, "cdata");
       if (str && *str) {
         if (!tag_list) tag_list = string_list_create();
@@ -574,11 +574,11 @@ _xmltv_parse_credits(htsmsg_t **out_credits, htsmsg_t *tags)
   htsmsg_field_t *f;
 
   HTSMSG_FOREACH(f, credits_tags) {
-    if ((!strcmp(f->hmf_name, "actor") ||
-         !strcmp(f->hmf_name, "director") ||
-         !strcmp(f->hmf_name, "guest") ||
-         !strcmp(f->hmf_name, "presenter") ||
-         !strcmp(f->hmf_name, "writer")
+    if ((!strcmp(htsmsg_field_name(f), "actor") ||
+         !strcmp(htsmsg_field_name(f), "director") ||
+         !strcmp(htsmsg_field_name(f), "guest") ||
+         !strcmp(htsmsg_field_name(f), "presenter") ||
+         !strcmp(htsmsg_field_name(f), "writer")
          ) &&
         (e = htsmsg_get_map_by_field(f)))  {
       const char* str = htsmsg_get_str(e, "cdata");
@@ -587,7 +587,7 @@ _xmltv_parse_credits(htsmsg_t **out_credits, htsmsg_t *tags)
         string_list_insert(credits_names, str);
 
         if (!*out_credits) *out_credits = htsmsg_create_map();
-        htsmsg_add_str(*out_credits, str, f->hmf_name);
+        htsmsg_add_str(*out_credits, str, htsmsg_field_name(f));
       }
     }
   }
@@ -889,7 +889,7 @@ static int _xmltv_parse_channel
 
   HTSMSG_FOREACH(f, tags) {
     if (!(subtag = htsmsg_field_get_map(f))) continue;
-    if (strcmp(f->hmf_name, "display-name") == 0) {
+    if (strcmp(htsmsg_field_name(f), "display-name") == 0) {
       name = htsmsg_get_str(subtag, "cdata");
       const char *cur = name;
 
@@ -932,7 +932,7 @@ static int _xmltv_parse_channel
       if (cur && *cur)
         htsmsg_add_str_exclusive(dnames, cur);
     }
-    else if (strcmp(f->hmf_name, "icon") == 0) {
+    else if (strcmp(htsmsg_field_name(f), "icon") == 0) {
       if ((attribs = htsmsg_get_map(subtag,  "attrib")) != NULL &&
           (icon    = htsmsg_get_str(attribs, "src"))    != NULL) {
         save |= epggrab_channel_set_icon(ch, icon);
@@ -972,11 +972,11 @@ static int _xmltv_parse_tv
 
   HTSMSG_FOREACH(f, tags) {
     save = 0;
-    if(!strcmp(f->hmf_name, "channel")) {
+    if(!strcmp(htsmsg_field_name(f), "channel")) {
       pthread_mutex_lock(&global_lock);
       save = _xmltv_parse_channel(mod, htsmsg_get_map_by_field(f), stats);
       pthread_mutex_unlock(&global_lock);
-    } else if(!strcmp(f->hmf_name, "programme")) {
+    } else if(!strcmp(htsmsg_field_name(f), "programme")) {
       pthread_mutex_lock(&global_lock);
       save = _xmltv_parse_programme(mod, htsmsg_get_map_by_field(f), stats);
       if (save) epg_updated();
index 200f3fa391b0a730168a59b073efd3211b0c2626..a16a2c4b6ac6d26aa571426878274792b199e057 100644 (file)
@@ -914,7 +914,7 @@ epggrab_ota_init ( void )
   if ((c = hts_settings_load_r(1, "epggrab/otamux"))) {
     HTSMSG_FOREACH(f, c) {
       if (!(m  = htsmsg_field_get_map(f))) continue;
-      epggrab_ota_load_one(f->hmf_name, m); 
+      epggrab_ota_load_one(htsmsg_field_name(f), m); 
     }
     htsmsg_destroy(c);
   }
index f15bdd7978bd6a04472fa72d3f86ddb5c6cfa48e..b1cd3b9bbf2bfbedf73332866bb2a25d6a848b4e 100644 (file)
@@ -1208,7 +1208,7 @@ esfilter_init(void)
   HTSMSG_FOREACH(f, c) {
     if (!(e = htsmsg_field_get_map(f)))
       continue;
-    esfilter_create(-1, f->hmf_name, e, 0);
+    esfilter_create(-1, htsmsg_field_name(f), e, 0);
   }
   htsmsg_destroy(c);
 
index 52cd5ddd7ba1b1818803c6be388f5a3199eb1454..735aff7dd3a78cf3a102ff611f9b89d7c35c649a 100644 (file)
@@ -117,33 +117,32 @@ htsmsg_field_add(htsmsg_t *msg, const char *name, int type, int flags, size_t es
   size_t nsize;
   htsmsg_field_t *f;
   
-  nsize = name ? strlen(name) + 1 : 1;
-  f = malloc(sizeof(htsmsg_field_t) + nsize + esize);
-  if(f == NULL)
-    return NULL;
-  TAILQ_INSERT_TAIL(&msg->hm_fields, f, hmf_link);
-
-  if(msg->hm_islist) {
+  if (msg->hm_islist) {
     assert(name == NULL || *name == '\0');
+    name = NULL;
+    flags |= HMF_NONAME;
   } else {
     assert(name != NULL);
   }
 
-  if (name) {
-    strcpy((char *)f->hmf_name, name);
-  } else {
-    ((char *)f->hmf_name)[0] = '\0';
-  }
+  nsize = name ? htsmsg_malloc_align(type, strlen(name) + 1) : 0;
+  f = malloc(sizeof(htsmsg_field_t) + nsize + esize);
+  if (f == NULL)
+    return NULL;
+  TAILQ_INSERT_TAIL(&msg->hm_fields, f, hmf_link);
+
+  if (name)
+    strcpy((char *)f->_hmf_name, name);
 
-  if(esize) {
+  if (esize) {
     if(type == HMF_STR) {
-      f->hmf_str = f->hmf_name + nsize;
+      f->hmf_str = f->_hmf_name + nsize;
     } else if(type == HMF_UUID) {
-      f->hmf_uuid = (uint8_t *)f->hmf_name + nsize;
+      f->hmf_uuid = (uint8_t *)f->_hmf_name + nsize;
     } else if(type == HMF_LIST || type == HMF_MAP) {
-      f->hmf_msg = (htsmsg_t *)(f->hmf_name + nsize);
+      f->hmf_msg = (htsmsg_t *)(f->_hmf_name + nsize);
     } else if(type == HMF_BIN) {
-      f->hmf_bin = f->hmf_name + nsize;
+      f->hmf_bin = f->_hmf_name + nsize;
       f->hmf_binsize = esize;
     }
   }
@@ -170,7 +169,7 @@ htsmsg_field_find(const htsmsg_t *msg, const char *name)
   if (msg == NULL || name == NULL)
     return NULL;
   TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) {
-    if(!strcmp(f->hmf_name, name))
+    if(!strcmp(htsmsg_field_name(f), name))
       return f;
   }
   return NULL;
@@ -1178,7 +1177,7 @@ htsmsg_print0(htsmsg_t *msg, int indent)
 
     for(i = 0; i < indent; i++) printf("\t");
 
-    printf("%s (", f->hmf_name);
+    printf("%s (", htsmsg_field_name(f));
 
     switch(f->hmf_type) {
 
@@ -1283,7 +1282,7 @@ htsmsg_copy_i(htsmsg_t *dst, const htsmsg_t *src)
   htsmsg_field_t *f;
 
   TAILQ_FOREACH(f, &src->hm_fields, hmf_link)
-    htsmsg_copy_f(dst, f, f->hmf_name);
+    htsmsg_copy_f(dst, f, htsmsg_field_name(f));
 }
 
 htsmsg_t *
@@ -1328,7 +1327,7 @@ htsmsg_cmp(const htsmsg_t *m1, const htsmsg_t *m2)
 
     if (f1->hmf_type != f2->hmf_type)
       return 1;
-    if (strcmp(f1->hmf_name, f2->hmf_name))
+    if (strcmp(htsmsg_field_name(f1), htsmsg_field_name(f2)))
       return 1;
 
     switch(f1->hmf_type) {
@@ -1399,7 +1398,7 @@ htsmsg_get_map_by_field_if_name(htsmsg_field_t *f, const char *name)
 {
   if(f->hmf_type != HMF_MAP)
     return NULL;
-  if(strcmp(f->hmf_name, name))
+  if(strcmp(htsmsg_field_name(f), name))
     return NULL;
   return f->hmf_msg;
 }
index e759bcef40b5bde99fca101942a7e4e24d56f7fe..e9dd2a8c523c084f879b905a632606ca617a3423 100644 (file)
@@ -63,6 +63,7 @@ typedef struct htsmsg_field {
 
 #define HMF_ALLOCED        0x1
 #define HMF_INALLOCED      0x2
+#define HMF_NONAME         0x4
 
   union {
     int64_t  s64;
@@ -80,7 +81,7 @@ typedef struct htsmsg_field {
 #if ENABLE_SLOW_MEMORYINFO
   size_t hmf_edata_size;
 #endif
-  const char hmf_name[0];
+  const char _hmf_name[0];
 } htsmsg_field_t;
 
 #define hmf_s64     u.s64
@@ -100,6 +101,25 @@ typedef struct htsmsg_field {
 #define HTSMSG_FIRST(msg)      TAILQ_FIRST(&(msg)->hm_fields)
 #define HTSMSG_NEXT(f)         TAILQ_NEXT(f, hmf_link)
 
+/**
+ * Aligned memory allocation
+ */
+static inline size_t htsmsg_malloc_align(int type, size_t len)
+{
+  if (type == HMF_LIST || type == HMF_MAP)
+    return (len + (size_t)7) & ~(size_t)7;
+  return len;
+}
+
+/**
+ * Get a field name
+ */
+static inline const char *htsmsg_field_name(htsmsg_field_t *f)
+{
+  if (f->hmf_flags & HMF_NONAME) return "";
+  return f->_hmf_name;
+}
+
 /**
  * Create a new map
  */
index d442c243e48eaa3edc23375144ca170a791c4472..1f2287721eb86874d6adc0b7664b967ff402566a 100644 (file)
@@ -54,7 +54,7 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len)
     if(len < namelen + datalen)
       return -1;
 
-    nlen = namelen ? namelen + 1 : 1;
+    nlen = namelen ? htsmsg_malloc_align(type, namelen + 1) : 0;
     tlen = sizeof(htsmsg_field_t) + nlen;
     if (type == HMF_STR) {
       tlen += datalen + 1;
@@ -76,25 +76,25 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len)
     f->hmf_flags = 0;
 
     if(namelen > 0) {
-      memcpy((char *)f->hmf_name, buf, namelen);
-      ((char *)f->hmf_name)[namelen] = 0;
+      memcpy((char *)f->_hmf_name, buf, namelen);
+      ((char *)f->_hmf_name)[namelen] = 0;
 
       buf += namelen;
       len -= namelen;
     } else {
-      ((char *)f->hmf_name)[0] = '\0';
+      f->hmf_flags = HMF_NONAME;
     }
 
     switch(type) {
     case HMF_STR:
-      f->hmf_str = f->hmf_name + nlen;
+      f->hmf_str = f->_hmf_name + nlen;
       memcpy((char *)f->hmf_str, buf, datalen);
       ((char *)f->hmf_str)[datalen] = 0;
       f->hmf_flags |= HMF_INALLOCED;
       break;
 
     case HMF_UUID:
-      f->hmf_uuid = (uint8_t *)f->hmf_name + nlen;
+      f->hmf_uuid = (uint8_t *)f->_hmf_name + nlen;
       memcpy((char *)f->hmf_uuid, buf, UUID_BIN_SIZE);
       break;
 
@@ -113,7 +113,7 @@ htsmsg_binary_des0(htsmsg_t *msg, const uint8_t *buf, size_t len)
 
     case HMF_MAP:
     case HMF_LIST:
-      sub = f->hmf_msg = (htsmsg_t *)(f->hmf_name + nlen);
+      sub = f->hmf_msg = (htsmsg_t *)(f->_hmf_name + nlen);
       TAILQ_INIT(&sub->hm_fields);
       sub->hm_data = NULL;
       sub->hm_data_size = 0;
@@ -220,7 +220,7 @@ htsmsg_binary_count(htsmsg_t *msg)
 
   TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) {
 
-    len += 6 + strlen(f->hmf_name);
+    len += 6 + strlen(htsmsg_field_name(f));
 
     switch(f->hmf_type) {
     case HMF_MAP:
@@ -268,7 +268,7 @@ htsmsg_binary_write(htsmsg_t *msg, uint8_t *ptr)
   int l, i, namelen;
 
   TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) {
-    namelen = strlen(f->hmf_name);
+    namelen = strlen(htsmsg_field_name(f));
     *ptr++ = f->hmf_type;
     *ptr++ = namelen;
 
@@ -310,7 +310,7 @@ htsmsg_binary_write(htsmsg_t *msg, uint8_t *ptr)
     *ptr++ = l;
 
     if(namelen > 0) {
-      memcpy(ptr, f->hmf_name, namelen);
+      memcpy(ptr, f->_hmf_name, namelen);
       ptr += namelen;
     }
 
index a85aab81ea267a67c386e5456b9b76ae2a183db6..77ddaf862b7a5cbc382de7f514e83322cd3409ef 100644 (file)
@@ -113,7 +113,7 @@ htsmsg_binary2_des0(htsmsg_t *msg, const uint8_t *buf, uint32_t len)
     if(len < namelen + datalen)
       return -1;
 
-    nlen = namelen ? namelen + 1 : 1;
+    nlen = namelen ? htsmsg_malloc_align(type, namelen + 1) : 0;
     tlen = sizeof(htsmsg_field_t) + nlen;
     if (type == HMF_STR) {
       tlen += datalen + 1;
@@ -135,25 +135,25 @@ htsmsg_binary2_des0(htsmsg_t *msg, const uint8_t *buf, uint32_t len)
     f->hmf_flags = 0;
 
     if(namelen > 0) {
-      memcpy((char *)f->hmf_name, buf, namelen);
-      ((char *)f->hmf_name)[namelen] = 0;
+      memcpy((char *)f->_hmf_name, buf, namelen);
+      ((char *)f->_hmf_name)[namelen] = 0;
 
       buf += namelen;
       len -= namelen;
     } else {
-      ((char *)f->hmf_name)[0] = '\0';
+      f->hmf_flags |= HMF_NONAME;
     }
 
     switch(type) {
     case HMF_STR:
-      f->hmf_str = f->hmf_name + nlen;
+      f->hmf_str = f->_hmf_name + nlen;
       memcpy((char *)f->hmf_str, buf, datalen);
       ((char *)f->hmf_str)[datalen] = 0;
       f->hmf_flags |= HMF_INALLOCED;
       break;
 
     case HMF_UUID:
-      f->hmf_uuid = (uint8_t *)f->hmf_name + nlen;
+      f->hmf_uuid = (uint8_t *)f->_hmf_name + nlen;
       memcpy((char *)f->hmf_uuid, buf, UUID_BIN_SIZE);
       break;
 
@@ -172,7 +172,7 @@ htsmsg_binary2_des0(htsmsg_t *msg, const uint8_t *buf, uint32_t len)
 
     case HMF_MAP:
     case HMF_LIST:
-      sub = f->hmf_msg = (htsmsg_t *)(f->hmf_name + nlen);
+      sub = f->hmf_msg = (htsmsg_t *)(f->_hmf_name + nlen);
       TAILQ_INIT(&sub->hm_fields);
       sub->hm_data = NULL;
       sub->hm_data_size = 0;
@@ -326,7 +326,7 @@ htsmsg_binary2_count(htsmsg_t *msg)
   TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) {
     l = htsmsg_binary2_field_length(f);
     len += 2 + htsmsg_binary2_length_count(l);
-    len += strlen(f->hmf_name);
+    len += strlen(htsmsg_field_name(f));
     len += l;
   }
   return len;
@@ -343,7 +343,7 @@ htsmsg_binary2_write(htsmsg_t *msg, uint8_t *ptr)
   int l, i, namelen;
 
   TAILQ_FOREACH(f, &msg->hm_fields, hmf_link) {
-    namelen = strlen(f->hmf_name);
+    namelen = strlen(htsmsg_field_name(f));
     assert(namelen <= 0xff);
     *ptr++ = f->hmf_type;
     *ptr++ = namelen;
@@ -352,7 +352,7 @@ htsmsg_binary2_write(htsmsg_t *msg, uint8_t *ptr)
     ptr = htsmsg_binary2_set_length(ptr, l);
 
     if(namelen > 0) {
-      memcpy(ptr, f->hmf_name, namelen);
+      memcpy(ptr, f->_hmf_name, namelen);
       ptr += namelen;
     }
 
index f33950fb9f4f363ade0b8c71aed2cae8d17d8020..e38286f8d8ca3e38200f1af5820917907d86ede3 100644 (file)
@@ -49,7 +49,7 @@ htsmsg_json_write(htsmsg_t *msg, htsbuf_queue_t *hq, int isarray,
       htsbuf_append(hq, indentor, indent < 16 ? indent : 16);
 
     if(!isarray) {
-      htsbuf_append_and_escape_jsonstr(hq, f->hmf_name);
+      htsbuf_append_and_escape_jsonstr(hq, htsmsg_field_name(f));
       htsbuf_append(hq, ": ", pretty ? 2 : 1);
     }
 
index 3ff89560ed1fc95fab47f7792ffcd180e9c7958e..7eafa677ad904adedff359a02bdab5b0564954db 100644 (file)
@@ -431,7 +431,7 @@ imagecache_init ( void )
   if ((m = hts_settings_load("imagecache/meta"))) {
     HTSMSG_FOREACH(f, m) {
       if (!(e   = htsmsg_get_map_by_field(f))) continue;
-      if (!(id  = atoi(f->hmf_name))) continue;
+      if (!(id  = atoi(htsmsg_field_name(f)))) continue;
       if (!(url = htsmsg_get_str(e, "url"))) continue;
       img          = calloc(1, sizeof(imagecache_image_t));
       img->id      = id;
index 7aefd8f65469db4351c6a9b6b1509e837d8b2ed1..5500c2305ccc9fa0205e43d4372a51c686c11d59 100644 (file)
@@ -1099,7 +1099,7 @@ iptv_network_create0
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_get_map_by_field(f)))  continue;
       if (!(e = htsmsg_get_map(e, "config"))) continue;
-      im = iptv_mux_create0(in, f->hmf_name, e);
+      im = iptv_mux_create0(in, htsmsg_field_name(f), e);
       mpegts_mux_post_create((mpegts_mux_t *)im);
     }
     htsmsg_destroy(c);
@@ -1151,9 +1151,9 @@ iptv_network_init ( void )
     if (!(e = htsmsg_get_map_by_field(f)))  continue;
     if (!(e = htsmsg_get_map(e, "config"))) continue;
     if (htsmsg_get_str(e, "url"))
-      iptv_network_create0(f->hmf_name, e, &iptv_auto_network_class);
+      iptv_network_create0(htsmsg_field_name(f), e, &iptv_auto_network_class);
     else
-      iptv_network_create0(f->hmf_name, e, &iptv_network_class);
+      iptv_network_create0(htsmsg_field_name(f), e, &iptv_network_class);
   }
   htsmsg_destroy(c);
 }
index 4fa1f275f1c508a76c3baad4ab2c72173221164b..6fe3cddd41208ef16764fb7ac5889c0c1e2d02cf 100644 (file)
@@ -381,7 +381,7 @@ iptv_mux_create0 ( iptv_network_t *in, const char *uuid, htsmsg_t *conf )
   if (c) {
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      (void)iptv_service_create0(im, 0, 0, f->hmf_name, e);
+      (void)iptv_service_create0(im, 0, 0, htsmsg_field_name(f), e);
     }
   } else if (in->in_service_id) {
     conf = htsmsg_create_map();
index c003ec61f6a7ce3de305d65f4ca343c08126ddbd..0e09d041a26621149afb00347a867197e3346f4b 100644 (file)
@@ -1260,7 +1260,7 @@ dvb_mux_create0
   if (c) {
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_get_map_by_field(f))) continue;
-      mpegts_service_create1(f->hmf_name, (mpegts_mux_t *)lm, 0, 0, e);
+      mpegts_service_create1(htsmsg_field_name(f), (mpegts_mux_t *)lm, 0, 0, e);
     }
     htsmsg_destroy(c2);
   }
index 53bd24838d32add365665ee7bdc607b1a016a18d..46ca4d18e3ee893dc88b8b846fca02567c5ad4ab 100644 (file)
@@ -367,7 +367,7 @@ mpegts_mux_sched_init ( void )
   if ((c = hts_settings_load_r(1, "muxsched"))) {
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f))) continue;
-      mpegts_mux_sched_create(f->hmf_name, e);
+      mpegts_mux_sched_create(htsmsg_field_name(f), e);
     }
     htsmsg_destroy(c);
   }
index 63517efa38e4c1f464a03d1c31af24b1c7272f21..dd9a5ee1d4bda9283883394c482064bf37513961 100644 (file)
@@ -918,7 +918,7 @@ dvb_network_create0
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_get_map_by_field(f)))  continue;
       if (!(e = htsmsg_get_map(e, "config"))) continue;
-      lm = dvb_mux_create1(ln, f->hmf_name, e);
+      lm = dvb_mux_create1(ln, htsmsg_field_name(f), e);
       mpegts_mux_post_create((mpegts_mux_t *)lm);
     }
     htsmsg_destroy(c);
@@ -995,7 +995,7 @@ void dvb_network_init ( void )
       if (strcmp(s, "dvb_network_atsc") == 0)
         s = "dvb_network_atsc_t";
       if(!strcmp(dvb_network_classes[i]->ic_class, s)) {
-        dvb_network_create0(f->hmf_name, dvb_network_classes[i], e);
+        dvb_network_create0(htsmsg_field_name(f), dvb_network_classes[i], e);
         break;
       }
     }
index 80fc6d6e84f9cd89128a3f10fb84c214ceb4a7ef..c0cfbe016938472778ef6aec0e6e0b829a0abd31 100644 (file)
@@ -288,7 +288,7 @@ lang_str_t *lang_str_deserialize_map ( htsmsg_t *map )
   if (ret) {
     HTSMSG_FOREACH(f, map) {
       if ((str = htsmsg_field_get_string(f))) {
-        lang_str_add(ret, str, f->hmf_name);
+        lang_str_add(ret, str, htsmsg_field_name(f));
       }
     }
   }
index 691d6cd313c0a86ebaee3ad0b91c2cbc53aff14f..aee6312c07505b3bf7a78f6822642afb0a1ae7ff 100644 (file)
@@ -103,7 +103,7 @@ notify_thread ( void *p )
     pthread_mutex_lock(&global_lock);
 
     HTSMSG_FOREACH(f, q)
-      notify_by_msg(f->hmf_name, htsmsg_detach_submsg(f), 0);
+      notify_by_msg(htsmsg_field_name(f), htsmsg_detach_submsg(f), 0);
 
     /* Finished */
     pthread_mutex_unlock(&global_lock);
index 8a6a641c888471b84c5899f376318aa5216aa345..bf542ee83a4a0762366c571d0e901854653ed684 100644 (file)
@@ -2558,7 +2558,7 @@ profile_init(void)
     HTSMSG_FOREACH(f, c) {
       if (!(e = htsmsg_field_get_map(f)))
         continue;
-      (void)profile_create(f->hmf_name, e, 0);
+      (void)profile_create(htsmsg_field_name(f), e, 0);
     }
     htsmsg_destroy(c);
   }
index 96e791349efb5a58aa33e80ac83d2f576d78d87d..b769f9d17c16577456cd6f84e6831b04844ec213 100644 (file)
@@ -385,7 +385,7 @@ prop_read_values
       total++;
       if (!htsmsg_field_get_bool(f, &b)) {
         if (b > 0) {
-          p = prop_find(pl, f->hmf_name);
+          p = prop_find(pl, htsmsg_field_name(f));
           if (p)
             prop_read_value(obj, p, m, p->id, optmask, lang);
           count++;
@@ -395,7 +395,7 @@ prop_read_values
     if (total && !count) {
       for (; pl->id; pl++) {
         HTSMSG_FOREACH(f, list)
-          if (!strcmp(pl->id, f->hmf_name))
+          if (!strcmp(pl->id, htsmsg_field_name(f)))
             break;
         if (f == NULL)
           prop_read_value(obj, pl, m, pl->id, optmask, lang);
@@ -578,7 +578,7 @@ prop_serialize
     HTSMSG_FOREACH(f, list) {
       total++;
       if (!htsmsg_field_get_bool(f, &b) && b > 0) {
-        p = prop_find(pl, f->hmf_name);
+        p = prop_find(pl, htsmsg_field_name(f));
         if (p)
           prop_serialize_value(obj, p, msg, optmask, lang);
         count++;
@@ -587,7 +587,7 @@ prop_serialize
     if (total && !count) {
       for (; pl->id; pl++) {
         HTSMSG_FOREACH(f, list)
-          if (!strcmp(pl->id, f->hmf_name))
+          if (!strcmp(pl->id, htsmsg_field_name(f)))
             break;
         if (f == NULL)
           prop_serialize_value(obj, pl, msg, optmask, lang);
index 7138e1fc0196430bf84526081e772488f1ee08c1..202e17a7dbff189e9817ba42d2776454928c4997 100644 (file)
@@ -72,7 +72,7 @@ tvh_codec_profile_load(htsmsg_field_t *config)
     const char *name = NULL;
 
     if ((conf = htsmsg_field_get_map(config)) &&
-        tvh_codec_profile_create(conf, config->hmf_name, 0)) {
+        tvh_codec_profile_create(conf, htsmsg_field_name(config), 0)) {
         tvherror(LS_CODEC, "unable to load codec profile: '%s'",
                  (name = htsmsg_get_str(conf, "name")) ? name : "<unknown>");
     }
index a739189882b0b1ce7617cd728ca94ce14305a499..6ab540965d9f2ea592b45f8b7520549c574dbce6 100644 (file)
@@ -160,7 +160,7 @@ http_xmltv_programme_one(htsbuf_queue_t *hq, const char *hostpath,
     htsmsg_field_t *f;
     HTSMSG_FOREACH(f, ebc->credits) {
       htsbuf_qprintf(hq, "    <%s>", f->u.str);
-      htsbuf_append_and_escape_xml(hq, f->hmf_name);
+      htsbuf_append_and_escape_xml(hq, htsmsg_field_name(f));
       htsbuf_qprintf(hq, "</%s>\n", f->u.str);
     }
     htsbuf_append_str(hq, "  </credits>\n");