1. 04 Nov, 2008 1 commit
  2. 03 Nov, 2008 1 commit
  3. 31 Oct, 2008 1 commit
    • Max Kellermann's avatar
      added prefix to header macros · ea515494
      Max Kellermann authored
      "LOG_H" is a macro which is also used by ffmpeg/log.h.  This is
      ffmpeg's fault, because short macros should be reserved for
      applications, but since it's always a good idea to choose prefixed
      macro names, even for applications, we are going to do that in MPD.
      ea515494
  4. 13 Oct, 2008 1 commit
  5. 08 Oct, 2008 1 commit
  6. 29 Sep, 2008 2 commits
    • Max Kellermann's avatar
      assume stdint.h and stddef.h are available · a7651b9d
      Max Kellermann authored
      Since we use a C99 compiler now, we can assert that the C99 standard
      headers are available, no need for complicated compile time checks.
      Kill mpd_types.h.
      a7651b9d
    • Eric Wong's avatar
      Switch to C99 types (retaining compat with old compilers) · 0352766d
      Eric Wong authored
      Seeing the "mpd_" prefix _everywhere_ is mind-numbing as the
      mind needs to retrain itself to skip over the first 4 tokens of
      a type to get to its meaning.  So avoid having extra characters
      on my terminal to make it easier to follow code at 2:30 am in
      the morning.
      
      Please report any new issues you may come across on Free
      toolchains.  I realize how difficult it can be to build/maintain
      cross-compiling toolchains and I have no intention of forcing
      people to upgrade their toolchains to build mpd.
      
      Tested with gcc 2.95.4 and and gcc 4.3.1 on x86-32.
      0352766d
  7. 07 Sep, 2008 1 commit
    • Max Kellermann's avatar
      tag: moved code to tag_print.c · 386c3031
      Max Kellermann authored
      Move everything which dumps a tag to a file descriptor to tag_print.c.
      This relaxes dependencies and splits the code into smaller parts.
      386c3031
  8. 29 Aug, 2008 9 commits
    • 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: 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
      tag: added a pool for tag items · c855415c
      Max Kellermann authored
      The new source tag_pool.c manages a pool of reference counted tag_item
      objects.  This is used to merge tag items of the same type and value,
      saving lots of memory.  Formerly, only the value itself was pooled,
      wasting memory for all the pointers and tag_item structs.
      
      The following results were measured with massif.  Started MPD on
      amd64, typed "mpc", no song being played.  My music database contains
      35k tagged songs.  The results are what massif reports as "peak".
      
       0.13.2:     total 14,131,392; useful 11,408,972; extra 2,722,420
       eric:       total 18,370,696; useful 15,648,182; extra 2,722,514
       mk f34f694e: total 15,833,952; useful 13,111,470; extra 2,722,482
       mk now:     total 12,837,632; useful 10,626,383; extra 2,211,249
      
      This patch set saves 20% memory, and does a good job in reducing heap
      fragmentation.
      c855415c
    • Max Kellermann's avatar
      tag: converted tag_item.value to a char array · e5a78798
      Max Kellermann authored
      The value is stored in the same memory allocation as the tag_item
      struct; this saves memory because we do not store the value pointer
      anymore.  Also remove the getTagItemString()/removeTagItemString()
      dummies.
      e5a78798
    • Max Kellermann's avatar
      tag: converted MpdTag.items to a pointer list · ad0e09b2
      Max Kellermann authored
      This prepares the following patches, which aim to reduce MPD's memory
      usage: we plan to share tag_item instances, instead of just their
      values.
      ad0e09b2
    • Max Kellermann's avatar
      tag: moved code to tag_id3.c · 6f72fe3e
      Max Kellermann authored
      The ID3 code uses only the public tag API, but is otherwise
      unrelated.  Move it to a separate source file.
      6f72fe3e
    • Max Kellermann's avatar
      5e1feb8f
    • Max Kellermann's avatar
      tag: renamed functions, no CamelCase · 91502cd7
      Max Kellermann authored
      91502cd7
    • Max Kellermann's avatar
      tag: renamed MpdTag and MpdTagItem to struct tag, struct mpd_tag_item · d0556dc9
      Max Kellermann authored
      Getting rid of CamelCase; not having typedefs also allows us to
      forward-declare the structures.
      d0556dc9
  9. 28 Aug, 2008 2 commits
    • Max Kellermann's avatar
      const pointers · bc1c8835
      Max Kellermann authored
      The usual bunch of pointer arguments which should be const.
      bc1c8835
    • Max Kellermann's avatar
      unsigned integers and size_t · 801c71ed
      Max Kellermann authored
      Use "unsigned int" whenever negative values are not meaningful.  Use
      size_t whenever we are going to describe buffer sizes.
      801c71ed
  10. 26 Aug, 2008 1 commit
  11. 05 Feb, 2008 1 commit
  12. 03 Jan, 2008 1 commit
    • Eric Wong's avatar
      Cleanup #includes of standard system headers and put them in one place · cb8f1af3
      Eric Wong authored
      This will make refactoring features easier, especially now that
      pthreads support and larger refactorings are on the horizon.
      
      Hopefully, this will make porting to other platforms (even
      non-UNIX-like ones for masochists) easier, too.
      
      os_compat.h will house all the #includes for system headers
      considered to be the "core" of MPD.  Headers for optional
      features will be left to individual source files.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@7130 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      cb8f1af3
  13. 05 Apr, 2007 1 commit
  14. 31 Mar, 2007 1 commit
  15. 18 Feb, 2007 1 commit
  16. 20 Aug, 2006 1 commit
  17. 30 Jul, 2006 1 commit
    • Eric Wong's avatar
      interface/connection malloc reductions from mpd-ke · 4cf5d04c
      Eric Wong authored
      This patch massively reduces the amount of heap allocations at
      the interface/command layer.  Most commands with minimal output
      should not allocate memory from the heap at all.  Things like
      repeatedly polling status, currentsong, and volume changes
      should be faster as a result, and more importantly, not a source
      of memory fragmentation.
      
      These changes should be safe in that there's no way for a
      remote-client to corrupt memory or otherwise do bad stuff to
      MPD, but an extra set of eyes to review would be good.  Of
      course there's never any warranty :)
      
      No longer do we use FILE * structures in the interface, which means
      we don't have to allocate any new memory for most connections.
      
      Now, before you go on about losing the buffering that FILE *
      +implies+, remember that myfprintf() never took advantage of
      any of the stdio buffering features.
      
      To reduce the diff and make bugs easier to spot in the diff,
      I've kept myfprintf in places where we write to files (and not
      network interfaces).  Expect myfprintf to go away entirely soon
      (we'll use fprintf for writing regular files).
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4483 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      4cf5d04c
  18. 20 Jul, 2006 1 commit
  19. 16 Jul, 2006 1 commit
  20. 15 Jul, 2006 1 commit
  21. 14 Jul, 2006 1 commit
  22. 13 Jul, 2006 1 commit
  23. 30 Apr, 2006 1 commit
  24. 07 Mar, 2005 1 commit
  25. 05 Mar, 2005 1 commit
  26. 10 Nov, 2004 1 commit
  27. 06 Jun, 2004 2 commits
  28. 01 Jun, 2004 2 commits