]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
Merge branch 'refs/heads/t/mp3_afh'
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 26 Jun 2016 11:37:49 +0000 (13:37 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sun, 26 Jun 2016 11:37:49 +0000 (13:37 +0200)
Two patches that have been cooking for three months.

* refs/heads/t/mp3_afh:
  mp3_afh: Always create id3v2 tags.
  mp3_afh: Let free_tag() accept NULL pointer.

1  2 
mp3_afh.c

diff --combined mp3_afh.c
index 74d65fff6750355fd4a62b296e0b0d4d2d70ff2b,47298b83805729825ab8cee3bd62c72f263179a2..382b0e9091c4cb3d6679f9779ad6faff9fb1fe15
+++ b/mp3_afh.c
@@@ -300,6 -300,9 +300,9 @@@ static int replace_tags(struct id3_tag 
  static void free_tag(struct id3_tag *id3_t)
  {
        int i, j;
+       if (!id3_t)
+               return;
        for (i = 0; i < id3_t->nframes; i++) {
                struct id3_frame *fr = id3_t->frames[i];
                for (j = 0; j < fr->nfields; j++) {
@@@ -337,29 -340,27 +340,27 @@@ static int mp3_rewrite_tags(const char 
        if (v2_tag) {
                PARA_NOTICE_LOG("replacing id3v2 tag\n");
                old_v2size = v2_tag->paddedsize;
-       } else if (!v1_tag) {
-               PARA_NOTICE_LOG("no id3 tags found, adding id3v2 tag\n");
+       } else {
+               PARA_NOTICE_LOG("adding id3v2 tag\n");
                v2_tag = id3_tag_new();
                assert(v2_tag);
        }
-       if (v2_tag) {
-               /*
-                * Turn off all options to avoid creating an extended header.
-                * id321 does not understand it.
-                */
-               id3_tag_options(v2_tag, ~0U, 0);
-               ret = replace_tags(v2_tag, tags);
-               if (ret < 0)
-                       goto out;
-               new_v2size = id3_tag_render(v2_tag, NULL);
-               v2_buffer = para_malloc(new_v2size);
-               id3_tag_render(v2_tag, v2_buffer);
-               PARA_INFO_LOG("writing v2 tag (%lu bytes)\n", new_v2size);
-               ret = write_all(fd, (char *)v2_buffer, new_v2size);
-               free(v2_buffer);
-               if (ret < 0)
-                       goto out;
-       }
+       /*
+        * Turn off all options to avoid creating an extended header.  id321
+        * does not understand it.
+        */
+       id3_tag_options(v2_tag, ~0U, 0);
+       ret = replace_tags(v2_tag, tags);
+       if (ret < 0)
+               goto out;
+       new_v2size = id3_tag_render(v2_tag, NULL);
+       v2_buffer = para_malloc(new_v2size);
+       id3_tag_render(v2_tag, v2_buffer);
+       PARA_INFO_LOG("writing v2 tag (%lu bytes)\n", new_v2size);
+       ret = write_all(fd, (char *)v2_buffer, new_v2size);
+       free(v2_buffer);
+       if (ret < 0)
+               goto out;
        data_sz = mapsize - old_v2size;
        if (v1_tag && data_sz >= 128)
                data_sz -= 128;
                ret = write_all(fd, (char *)v1_buffer, 128);
        }
  out:
-       if (v1_tag)
-               free_tag(v1_tag);
-       if (v2_tag)
-               free_tag(v2_tag);
+       free_tag(v1_tag);
+       free_tag(v2_tag);
        return ret;
  }
  
@@@ -684,7 -683,7 +683,7 @@@ static int mp3_get_file_info(char *map
        return 1;
  }
  
 -static const char* mp3_suffixes[] = {"mp3", NULL};
 +static const char * const mp3_suffixes[] = {"mp3", NULL};
  
  /**
   * the init function of the mp3 audio format handler