mpd/src
Max Kellermann a3afd5178c tag/TagPool: optimize _dup_item()
When a reference counter is at its limit, don't allocate a new
TagPoolSlot - that would result in many TagPoolSlot instances with
ref==1.  This in turn would make the linked list very very large,
which means quadratic runtime for many operations.
2016-03-14 13:08:04 +01:00
..
android db/Configured: store database file in cache directory 2014-03-01 22:20:28 +01:00
archive archive/iso9660: check path buffer bounds 2016-03-07 14:21:01 +01:00
AudioCompress audio_{parser,config}: convert to C++ 2013-01-30 21:47:12 +01:00
client Merge branch 'v0.18.x' into v0.19.x 2015-01-26 20:48:19 +01:00
command QueueCommands: workaround for buggy clients that send "add /" 2014-11-18 21:31:54 +01:00
config StateFile: configurable interval 2014-08-24 13:24:20 +02:00
db db/update/Walk: use std::unique_ptr instead of std::auto_ptr 2015-01-29 08:37:23 +01:00
decoder decoder/dsdiff: fix off-by-one buffer overflow 2016-03-06 23:28:29 +01:00
encoder unix/Daemon, playlist/...: remove unused Domain variables 2015-10-16 18:08:59 +02:00
event event/Loop: read the "again" flag while holding mutex 2014-12-14 14:47:36 +01:00
filter unix/Daemon, playlist/...: remove unused Domain variables 2015-10-16 18:08:59 +02:00
fs fs/io/FileOutputStream: don't auto-delete file on WIN32 2015-02-06 14:36:55 +01:00
input input/curl: trigger the condition variable in RequestDone() 2015-06-19 16:45:38 +02:00
java Java/File: fix include guard 2014-11-24 07:51:25 +01:00
lib Merge branch 'v0.18.x' into v0.19.x 2015-01-26 20:48:19 +01:00
mixer mixer/pulse: fix integer division rounding 2016-03-06 23:23:30 +01:00
neighbor ConfigGlobal: eliminate function config_get_next_param() 2014-02-20 00:04:23 +01:00
output output/Command: flush the mixer cache when enabling/disabling output 2015-10-26 16:29:07 +01:00
pcm db/simple: fix implicit nullptr/bool conversion 2014-12-26 14:34:03 +01:00
playlist unix/Daemon, playlist/...: remove unused Domain variables 2015-10-16 18:08:59 +02:00
protocol protocol/ArgParser: fix range check 2016-03-06 23:41:08 +01:00
queue queue/Playlist: move only the tag items in TagModified() 2016-02-23 21:01:55 +01:00
sticker DatabasePlugin: split header 2014-02-19 22:54:52 +01:00
storage storage/nfs: fix deadlock when connecting 2015-05-29 22:39:14 +02:00
system system/PeriodClock: make IsDefined() "constexpr" 2015-06-20 15:33:17 +02:00
tag tag/TagPool: optimize _dup_item() 2016-03-14 13:08:04 +01:00
thread thread/Posix{Mutex,Cond}: use "constexpr" only with glibc 2016-03-01 21:23:59 +01:00
unix configure.ac, unix/Daemon: check for initgroups() at configure time 2016-02-23 20:13:34 +01:00
util util/HugeAllocator: fix division by zero due to inverted check 2016-03-06 23:53:41 +01:00
win32 Win32Main: move to win32/ 2014-08-02 08:48:30 +02:00
zeroconf ZeroconfBonjour: use htons() instead of g_htons() 2014-10-10 22:30:38 +02:00
AudioConfig.cxx Config*: move to config/ 2014-01-24 00:20:01 +01:00
AudioConfig.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
AudioFormat.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
AudioFormat.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
AudioParser.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
AudioParser.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
BulkEdit.hxx PlaylistEdit: postpone UpdateQueuedSong() when adding multiple songs 2014-07-11 20:22:35 +02:00
check.h copyright year 2014 2014-01-13 22:31:55 +01:00
CheckAudioFormat.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
CheckAudioFormat.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
Chrono.hxx Chrono: workaround for gcc 4.6 constexpr problems 2014-08-30 00:41:56 +02:00
CommandLine.cxx CommandLine: update copyright year 2014-09-26 09:29:18 +02:00
CommandLine.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
Compiler.h Merge branch 'v0.18.x' into v0.19.x 2014-12-26 14:28:52 +01:00
CrossFade.cxx CrossFade: pass total_time as SignedSongTime instance 2014-08-29 23:41:34 +02:00
CrossFade.hxx CrossFade: pass total_time as SignedSongTime instance 2014-08-29 23:41:34 +02:00
DetachedSong.cxx Tag: use SignedSongTime for the song duration 2014-08-29 13:20:58 +02:00
DetachedSong.hxx DetachedSong: add method MoveTagItemsFrom() 2016-02-23 20:59:44 +01:00
GlobalEvents.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
GlobalEvents.hxx Mixer: add class MixerListener 2014-02-19 21:40:14 +01:00
IcyMetaDataParser.cxx input/curl: move code to IcyInputStream 2014-05-21 18:47:49 +02:00
IcyMetaDataParser.hxx input/curl: move code to IcyInputStream 2014-05-21 18:47:49 +02:00
Idle.cxx fs/Traits, ...: work around -Wtautological-pointer-compare 2014-12-26 14:34:03 +01:00
Idle.hxx StorageCommands: emit IDLE_MOUNT on successful "mount" 2014-02-12 23:06:47 +01:00
Instance.cxx db/DatabaseListener: add method OnDatabaseSongRemoved() 2014-02-04 19:53:37 +01:00
Instance.hxx Main: wrap the Storage instance in CompositeStorage 2014-02-09 11:07:08 +01:00
IOThread.cxx thread/Name: set thread names 2014-01-23 10:07:14 +01:00
IOThread.hxx IOThread: make io_thread_get() "const" 2014-04-05 09:26:45 +02:00
Listen.cxx ConfigGlobal: eliminate function config_get_next_param() 2014-02-20 00:04:23 +01:00
Listen.hxx Listen: add Partition reference 2014-02-19 23:43:36 +01:00
Log.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
Log.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
LogBackend.cxx LogBackend: force-flush stderr on WIN32 2014-12-17 19:12:25 +01:00
LogBackend.hxx LogInit: disable SetLogCharset() without GLib 2014-02-18 09:18:42 +01:00
LogInit.cxx LogInit: make stderr line-buffered 2014-12-17 19:12:01 +01:00
LogInit.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
LogLevel.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
LogV.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
ls.cxx Merge branch 'v0.18.x' into v0.19.x 2015-01-26 20:48:19 +01:00
ls.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
Main.cxx Main: fix build failure on non-Linux systems 2015-11-10 08:38:53 +01:00
Main.hxx Revert "Main: run the OS X native event loop" 2014-10-31 15:03:46 +01:00
Mapper.cxx Mapper: obtain music directory from Storage 2014-02-07 23:34:29 +01:00
Mapper.hxx Mapper: obtain music directory from Storage 2014-02-07 23:34:29 +01:00
MixRampInfo.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
MusicBuffer.cxx MusicChunk: rename struct to MusicChunk 2014-08-12 15:56:41 +02:00
MusicBuffer.hxx MusicChunk: rename struct to MusicChunk 2014-08-12 15:56:41 +02:00
MusicChunk.cxx MusicChunk: remove special case for num_frames==0 2014-08-31 08:26:03 +02:00
MusicChunk.hxx MusicChunk: use SignedSongTime for the time stamp 2014-08-29 13:20:58 +02:00
MusicPipe.cxx MusicChunk: rename struct to MusicChunk 2014-08-12 15:56:41 +02:00
MusicPipe.hxx MusicChunk: rename struct to MusicChunk 2014-08-12 15:56:41 +02:00
notify.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
notify.hxx Merge branch 'v0.18.x' 2014-09-24 21:49:20 +02:00
open.h copyright year 2014 2014-01-13 22:31:55 +01:00
Partition.cxx PlayerListener: new interface to replace GlobalEvents access 2014-02-21 10:22:35 +01:00
Partition.hxx *: add missing Compiler.h includes 2014-08-30 00:46:52 +02:00
Permission.cxx ConfigGlobal: eliminate function config_get_next_param() 2014-02-20 00:04:23 +01:00
Permission.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
PlayerControl.cxx PlayerControl: use std::chrono::duration for Seek() 2014-08-27 19:07:16 +02:00
PlayerControl.hxx PlayerControl: make settings "const" 2014-08-30 00:28:02 +02:00
PlayerListener.hxx PlayerListener: new interface to replace GlobalEvents access 2014-02-21 10:22:35 +01:00
PlayerThread.cxx PlayerThread: start the decoder on PlayerCommand::QUEUE 2015-06-21 15:38:48 +02:00
PlayerThread.hxx PlayerThread: rename player_create() to StartPlayerThread() 2014-08-16 10:33:19 +02:00
PlaylistDatabase.cxx fs/output, fs/TextFile: move to fs/io/ 2014-08-07 19:38:25 +02:00
PlaylistDatabase.hxx *Save, *State: use the OutputStream API instead of FILE* 2014-07-30 22:17:01 +02:00
PlaylistError.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
PlaylistError.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
PlaylistFile.cxx PlaylistFile: don't allow empty playlist name 2014-11-02 11:52:48 +01:00
PlaylistFile.hxx PlaylistFile: use class SongLoader 2014-02-03 23:50:19 +01:00
PlaylistGlobal.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
PlaylistGlobal.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
PlaylistPrint.cxx Playlist*: move to queue/ 2014-02-27 17:12:42 +01:00
PlaylistPrint.hxx playlist/*: move to playlist/plugins/ 2014-01-23 23:30:12 +01:00
PlaylistSave.cxx PlaylistCommands: remove redundant playlist_load_spl() call 2014-05-10 19:02:33 +02:00
PlaylistSave.hxx PlaylistCommands: remove redundant playlist_load_spl() call 2014-05-10 19:02:33 +02:00
poison.h copyright year 2014 2014-01-13 22:31:55 +01:00
ReplayGainConfig.cxx Config*: move to config/ 2014-01-24 00:20:01 +01:00
ReplayGainConfig.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
ReplayGainInfo.cxx copyright year 2014 2014-01-13 22:31:55 +01:00
ReplayGainInfo.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
SongFilter.cxx Merge branch 'v0.18.x' into v0.19.x 2014-12-26 14:28:52 +01:00
SongFilter.hxx SongFilter: new filter "modified-since" 2014-08-11 22:38:58 +02:00
SongLoader.cxx fs/Traits, ...: work around -Wtautological-pointer-compare 2014-12-26 14:34:03 +01:00
SongLoader.hxx PlaylistMapper: use class Storage instead of Mapper.cxx 2014-02-07 21:44:50 +01:00
SongPrint.cxx storage/Interface: include cleanup 2014-10-01 23:38:17 +02:00
SongPrint.hxx command: add command "listfiles" 2014-03-01 06:25:57 +01:00
SongSave.cxx Tag: use SignedSongTime for the song duration 2014-08-29 13:20:58 +02:00
SongSave.hxx *Save, *State: use the OutputStream API instead of FILE* 2014-07-30 22:17:01 +02:00
SongUpdate.cxx db/simple: create dedicated directory 2014-02-26 09:17:41 +01:00
StateFile.cxx StateFile: configurable interval 2014-08-24 13:24:20 +02:00
StateFile.hxx StateFile: configurable interval 2014-08-24 13:24:20 +02:00
Stats.cxx db/Stats: use std::chrono::duration for the total duration 2014-08-29 23:25:03 +02:00
Stats.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
TagFile.cxx TagFile: use OpenLocalInputStream() 2014-10-02 21:43:40 +02:00
TagFile.hxx copyright year 2014 2014-01-13 22:31:55 +01:00
TagPrint.cxx Tag: use SignedSongTime for the song duration 2014-08-29 13:20:58 +02:00
TagPrint.hxx TagPrint: split tag_print() 2014-07-12 17:42:38 +02:00
TagSave.cxx Tag: use SignedSongTime for the song duration 2014-08-29 13:20:58 +02:00
TagSave.hxx *Save, *State: use the OutputStream API instead of FILE* 2014-07-30 22:17:01 +02:00
TagStream.cxx Decoder, Playlist: ignore URI query string for plugin detection 2014-11-01 13:41:18 +01:00
TagStream.hxx InputStream: convert to class 2014-05-11 15:34:48 +02:00
TimePrint.cxx Client*: move to client/ 2014-01-24 00:26:53 +01:00
TimePrint.hxx copyright year 2014 2014-01-13 22:31:55 +01:00