1. 07 Sep, 2008 27 commits
  2. 06 Sep, 2008 5 commits
    • Max Kellermann's avatar
      include cleanup · a34e1d2b
      Max Kellermann authored
      As usual, include only headers which are really needed.
      a34e1d2b
    • Eric Wong's avatar
      tag: fix segfault on update · 092bdf3d
      Eric Wong authored
      clearMpdTag could be called on a tag that was still in a
      tag_begin_add transaction before tag_end_add is called.  This
      was causing free() to attempt to operate on bulk.items; which is
      un-free()-able.  Now instead we unmark the bulk.busy to avoid
      committing the tags to the heap only to be immediately freed.
      
      Additionally, we need to remember to call tag_end_add() when
      a song is updated before we NULL song->tag to avoid tripping
      an assertion the next time tag_begin_add() is called.
      092bdf3d
    • Max Kellermann's avatar
      client: don't check FD_ISSET(client->fd) on expired client · 6146d4f5
      Max Kellermann authored
      client->fd becomes -1 when the client expires.  Don't use FD_ISSET()
      with this expired client; doing so would cause a crash due to SIGBUS.
      6146d4f5
    • Max Kellermann's avatar
      client: removed assert(client->fd)>=0 · 77b16716
      Max Kellermann authored
      Since client->fd==-1 has become our "expired" flag, it may already be
      -1 when client_close() is called.  Don't assert that it is still
      non-negative, and call client_set_expired() instead.
      77b16716
    • Max Kellermann's avatar
      dbUtils, playlist, directory: pass constant pointers · 35c0b84f
      Max Kellermann authored
      The usual bunch of const pointer conversions.
      35c0b84f
  3. 29 Aug, 2008 8 commits
    • Max Kellermann's avatar
      tag: optimize tag_dup(), copy item references · d38d2bc3
      Max Kellermann authored
      Don't call tag_pool_get_item() for duplicating tags, just increase the
      item's reference counter instead.
      d38d2bc3
    • Max Kellermann's avatar
      oggflac: fix GCC warnings · d8ad109e
      Max Kellermann authored
      Fix lots of "unused parameter" warnings in the OggFLAC decoder
      plugin.  Not sure if anybody uses it anymore, since newer libflac
      obsoletes it.
      d8ad109e
    • Max Kellermann's avatar
      tag: fix the shout and oggflac plugins · 01f9684f
      Max Kellermann authored
      During the tag library refactoring, the shout plugin was disabled, and
      I forgot about adapting it to the new API.  Apply the same fixes to
      the oggflac decoder plugin.
      01f9684f
    • Max Kellermann's avatar
      const pointers · 37d77caa
      Max Kellermann authored
      Yet another patch which converts pointer arguments to "const".
      37d77caa
    • Max Kellermann's avatar
      tag: static directory name · 5bd55516
      Max Kellermann authored
      While parsing the tag cache, don't allocate the directory name from
      the heap, but copy it into a buffer on the stack.  This reduces heap
      fragmentation by 1%.
      5bd55516
    • Max Kellermann's avatar
      tag: try not to reallocate tag.items in every add() call · 1aa34573
      Max Kellermann authored
      If many tag_items are added at once while the tag cache is being
      loaded, manage these items in a static fixed list, instead of
      reallocating the list with every newly created item.  This reduces
      heap fragmentation.
      
      Massif results again:
      
       mk before:  total 12,837,632; useful 10,626,383; extra 2,211,249
       mk now:     total 12,736,720; useful 10,626,383; extra 2,110,337
      
      The "useful" value is the same since this patch only changes the way
      we allocate the same amount of memory, but heap fragmentation was
      reduced by 5%.
      1aa34573
    • Max Kellermann's avatar
      song: don't export newNullSong() · 03152206
      Max Kellermann authored
      The function newNullSong() is only used internally in song.c.
      03152206
    • Max Kellermann's avatar
      tag: try not to duplicate the input string · a208d654
      Max Kellermann authored
      Try to detect if the string needs Latin1-UTF8 conversion, or
      whitespace cleanup.  If not, we don't need to allocate temporary
      memory, leading to decreased heap fragmentation.
      a208d654