Commit Graph

22 Commits

Author SHA1 Message Date
Eric Wong
4cf5d04ca1 interface/connection malloc reductions from mpd-ke
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
2006-07-30 03:43:38 +00:00
Avuton Olrich
29a25b9933 Add mpd-indent.sh
Indent the entire tree, hopefully we can keep
it indented.

git-svn-id: https://svn.musicpd.org/mpd/trunk@4410 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-20 16:02:40 +00:00
Eric Wong
a234780aab sparse: ANSI-fy function declarations
These are just warnings from sparse, but it makes the output
easier to read.  I ran this through a quick perl script, but
of course verified the output by looking at the diff and making
sure the thing still compiles.

here's the quick perl script I wrote to generate this patch:
----------- 8< -----------
use Tie::File;
defined(my $pid = open my $fh, '-|') or die $!;
if (!$pid) {
open STDERR, '>&STDOUT' or die $!;
exec 'sparse', @ARGV or die $!;
}
my $na = 'warning: non-ANSI function declaration of function';
while (<$fh>) {
print STDERR $_;
if (/^(.+?\.[ch]):(\d+):(\d+): $na '(\w+)'/o) {
my ($f, $l, $pos, $func) = ($1, $2, $3, $4);
$l--;
tie my @x, 'Tie::File', $f or die "$!: $f";
print '-', $x[$l], "\n";
$x[$l] =~ s/\b($func\s*)\(\s*\)/$1(void)/;
print '+', $x[$l], "\n";
untie @x;
}
}

git-svn-id: https://svn.musicpd.org/mpd/trunk@4378 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-17 00:15:34 +00:00
Eric Wong
b59aa75720 remove the glib library dependency
We never used many features from it, so there's no point in
keeping it and forcing people to install a non-standard library.
It may be standard on many GNU/Linux distributions, but there
are many other UNIXes out there.  This makes life much easier
for people cross-compiling (like me :)

git-svn-id: https://svn.musicpd.org/mpd/trunk@4361 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-16 16:50:54 +00:00
Avuton Olrich
6b4fea8d5c [CLEANUP] Cleanup whitespace->tabs
Remove dead code
Static where possible

git-svn-id: https://svn.musicpd.org/mpd/trunk@4345 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-15 03:34:48 +00:00
J. Alexander Treuman
2fa7125cce Change shank's email address
git-svn-id: https://svn.musicpd.org/mpd/trunk@4333 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-14 19:37:45 +00:00
Avuton Olrich
a37348a74f Huge header update, update the copyright and add
the GPL header where necessary

git-svn-id: https://svn.musicpd.org/mpd/trunk@4317 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-13 19:20:34 +00:00
Eric Wong
f8597ccf25 remove C++ style comments
git-svn-id: https://svn.musicpd.org/mpd/trunk@3689 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-11-19 10:52:47 +00:00
Qball Cow
32e5f4ca2b DJWLindenaar balanced tree and master process patch
git-svn-id: https://svn.musicpd.org/mpd/trunk@3669 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2005-11-16 14:43:04 +00:00
Warren Dukes
469a5824b8 get rid of a gcc warning
git-svn-id: https://svn.musicpd.org/mpd/trunk@2682 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-15 22:55:05 +00:00
Warren Dukes
b005556675 this shit really needs to be cleaned up, but its good enough for testing,
intelligently use memmove, when inserting nodes in a sorted list

git-svn-id: https://svn.musicpd.org/mpd/trunk@2677 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-15 19:29:20 +00:00
Warren Dukes
209cab26ca oops, forgot to remove some DEBUG statments
git-svn-id: https://svn.musicpd.org/mpd/trunk@2673 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-15 17:31:01 +00:00
Warren Dukes
33b9585d68 insert stuff in tagTracker in sorted order, hopefully this makes it faster
git-svn-id: https://svn.musicpd.org/mpd/trunk@2672 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-15 17:24:57 +00:00
Warren Dukes
450f2decdd put tracking titles back in tag tracker
git-svn-id: https://svn.musicpd.org/mpd/trunk@2654 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-14 14:58:00 +00:00
Warren Dukes
67c7cc8e20 fix test (we're not adding title's to the tag tracker)
git-svn-id: https://svn.musicpd.org/mpd/trunk@2653 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-14 14:46:50 +00:00
Warren Dukes
c2844e84ff test
git-svn-id: https://svn.musicpd.org/mpd/trunk@2652 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-14 14:42:07 +00:00
Warren Dukes
2c08fa619b a few DEBUG statements
git-svn-id: https://svn.musicpd.org/mpd/trunk@2642 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-13 23:22:22 +00:00
Warren Dukes
a0048eb786 somehow a } went missing
git-svn-id: https://svn.musicpd.org/mpd/trunk@2609 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-11 13:18:44 +00:00
Warren Dukes
b9272fa95a ok, tagtracker now tracks title, this has the disadvantage of needing to sort
the title tracker list, and it wastes more memory.
But it makes implementing list command elegant, since we've just visit tags,
then print out the visited tags in tag tracker (which has the benefit of
making sure everything is in sorted order)

git-svn-id: https://svn.musicpd.org/mpd/trunk@2608 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-11 13:15:41 +00:00
Warren Dukes
1d123cd496 better saved memmory display
git-svn-id: https://svn.musicpd.org/mpd/trunk@2607 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-11 05:25:05 +00:00
Warren Dukes
d6a87f538d ok, now song->url is only the filename, not the full path to the song
git-svn-id: https://svn.musicpd.org/mpd/trunk@2602 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-11 02:59:16 +00:00
Warren Dukes
c5d27d8eaa merge changes from metadata-rewrite branch
git-svn-id: https://svn.musicpd.org/mpd/trunk@2589 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-11-10 21:58:27 +00:00