Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2015-02-06 | fs/io/FileOutputStream: don't auto-delete file on WIN32 | Max Kellermann | 1 | -0/+2 | |
The file handle is never reset to INVALID_HANDLE_VALUE, and thus the destructor will assume the operation shall be cancelled and will delete the temporary file. This was a major breakage for saving the database file and the state file. | |||||
2015-02-06 | TagBuilder: allow adding duplicate tag types in Complement() | Max Kellermann | 1 | -1/+10 | |
Build a table of pre-existing tag types before adding new items. The old way would check HasType() each time, which would return true after the first instance of that tag type had been added, preventing duplicate tag types to be merged. This broke duplicate tag types loaded from the state file, because this code path uses TagBuilder::Complement(). | |||||
2015-01-29 | db/update/Walk: use std::unique_ptr instead of std::auto_ptr | Max Kellermann | 1 | -1/+1 | |
std::auto_ptr is deprecated, and std::unique_ptr is much better anyway. | |||||
2015-01-29 | Avoid integer overflow in MonotonicClock{S,MS,US} | PHO | 1 | -6/+6 | |
This is Darwin specific: the previous implementation was causing an integer overflow when base.numer is very large. On PPC Darwin, the timebase info is 1000000000/33330116 and this is too large for integer arithmetic. | |||||
2015-01-29 | decoder/DsdLib: use new[] to allocate the ID3 buffer | Max Kellermann | 1 | -3/+5 | |
Don't abort the process if there's not enough memory. This buffer is not important and can be large. | |||||
2015-01-29 | decoder/DsdLib: free ID3 buffer right after id3_tag_parse() | Max Kellermann | 1 | -5/+2 | |
Merge two free() calls. | |||||
2015-01-29 | decoder/DsdLib: raise ID3 tag limit to 1 MB | Max Kellermann | 1 | -1/+1 | |
A bug report was submitted with a 600 kB ID3 tag that could not be read by MPD. | |||||
2015-01-26 | Test the existence of strndup(3) before using it. | PHO | 1 | -5/+6 | |
This can eliminate the ad-hoc "#ifdef WIN32" and can also support other platforms lacking it as well (including Darwin 9). | |||||
2015-01-26 | {playlist,input}/despotify: remove defunct plugin | Max Kellermann | 9 | -668/+0 | |
2015-01-23 | util/list: disable gcc5 warning | Max Kellermann | 1 | -0/+4 | |
This file has been removed in newer MPD versions, so don't care about it now. | |||||
2015-01-23 | ClientProcess: cast enum to int before passing to printf() | Max Kellermann | 1 | -3/+3 | |
Fixes gcc5 warning. | |||||
2015-01-21 | thread/Name: include stdio.h if HAVE_PRCTL | Max Kellermann | 1 | -1/+4 | |
Caused a build failure with uClibc because snprintf() was not available. | |||||
2015-01-06 | input/async: reset the "open" flag after seeking successfully | Max Kellermann | 1 | -0/+5 | |
Fixes a problem with the "curl" input plugin: IsEOF() always returns true because the "open" flag was cleared by CurlInputStream::RequestDone() when end-of-stream was reached. This flag stays false even when seeking to another position has succeeded. This patch resets the "open" flag to true after seeking successfully. | |||||
2015-01-06 | thread/Name: disable pthread_setname_np() on NetBSD | Max Kellermann | 1 | -2/+6 | |
NetBSD's pthread_setname_np() prototype is incompatible with the rest of the world, and it requires to pass the string argument as a non-const pointer. Instead of working around this misdesign, I hereby disable the feature on NetBSD. | |||||
2015-01-06 | thread/Name: enable FormatThreadName() with prctl() | Max Kellermann | 1 | -1/+5 | |
Add macro HAVE_THREAD_NAME which is set when any method to set the thread name is available. Use that macro in FormatThreadName() instead of just checking for HAVE_PTHREAD_SETNAME_NP. | |||||
2015-01-06 | thread/Name: indent preprocessor commands | Max Kellermann | 1 | -3/+3 | |
2014-12-26 | db/simple: fix implicit nullptr/bool conversion | Max Kellermann | 3 | -5/+5 | |
Return false on error, not nullptr. | |||||
2014-12-26 | fs/Traits, ...: work around -Wtautological-pointer-compare | Max Kellermann | 5 | -1/+32 | |
New in clang 3.6. | |||||
2014-12-26 | db/lazy, input/mms: add "override" keywords | Max Kellermann | 3 | -4/+6 | |
Fixes -Winconsistent-missing-override (clang 3.6). | |||||
2014-12-26 | db/proxy, output/shout: fix implicit nullptr/bool conversion | Max Kellermann | 2 | -4/+4 | |
Return false on error, not nullptr. | |||||
2014-12-26 | db/{simple,proxy}, ...: add "override" keywords | Max Kellermann | 7 | -22/+26 | |
Fixes -Winconsistent-missing-override (clang 3.6). | |||||
2014-12-26 | util/{ASCII,UriUtil}, ...: work around -Wtautological-pointer-compare | Max Kellermann | 10 | -0/+51 | |
New in clang 3.6. | |||||
2014-12-26 | DatabaseGlue: convert nullptr check to assertion | Max Kellermann | 1 | -3/+2 | |
2014-12-26 | util/ASCII: fix indent | Max Kellermann | 1 | -10/+10 | |
2014-12-26 | Compiler.h: add macro CLANG_CHECK_VERSION() | Max Kellermann | 1 | -0/+7 | |
2014-12-26 | Compiler.h: add macro GCC_OLDER_THAN() | Max Kellermann | 2 | -4/+12 | |
2014-12-26 | util/Manual: reimplement GCC_CHECK_VERSION() using GCC_MAKE_VERSION() | Max Kellermann | 1 | -4/+3 | |
2014-12-26 | Compiler.h: add macro GCC_MAKE_VERSION() | Max Kellermann | 1 | -6/+4 | |
2014-12-23 | decoder/ffmpeg: support interleaved floating point | Max Kellermann | 1 | -0/+1 | |
2014-12-23 | input/mms: limit the mmsx_read() size | Max Kellermann | 1 | -0/+7 | |
2014-12-23 | decoder/DsdLib: add missing stdlib.h include | Max Kellermann | 1 | -0/+1 | |
2014-12-23 | DSF ID3 tags hitting 4k size limit | Jan Brittenson | 1 | -6/+12 | |
Here's a change to dynamically allocate the DSD ID3 tag buffer. Pretty much anything with cover art is going to exceed the existing, static 4k limit... Here's a change to dynamically allocate the buffer and sanity check it at some upper limit. I rather arbitrarily pulled 256k out of thin air just to keep a corrupt file from causing it to trying to allocate a buffer larger than available memory. | |||||
2014-12-17 | LogBackend: force-flush stderr on WIN32 | Max Kellermann | 1 | -0/+6 | |
setvbuf() does not seem to have an effect on Windows. | |||||
2014-12-17 | LogInit: make stderr line-buffered | Max Kellermann | 1 | -0/+3 | |
Make sure everything gets logged right away. No delays because stdio's buffer is not yet full. | |||||
2014-12-17 | util/HugeAllocator: enable MEM_COMMIT on Windows | Max Kellermann | 1 | -1/+3 | |
Without MEM_COMMIT, the reserved address space is not accessible, and MPD crashes. | |||||
2014-12-16 | playlist/embcue: fix filename suffix detection | k44 | 1 | -1/+1 | |
The definition of the playlist_plugin struct member of the embcue plugin was incorrect. | |||||
2014-12-15 | storage/nfs: add timeout | Max Kellermann | 2 | -3/+13 | |
2014-12-15 | decoder/ffmpeg: detect and fix negative time stamps | Max Kellermann | 1 | -4/+7 | |
Works around assertion failure due to something that appears to be a (minor) FFmpeg bug. | |||||
2014-12-15 | storage/nfs: clear last_error in SetState() | Max Kellermann | 1 | -0/+1 | |
Fixes bogus assertion failure. | |||||
2014-12-15 | lib/nfs/Connection: unregister socket with SocketMonitor::Steal() | Max Kellermann | 1 | -1/+1 | |
SocketMonitor::Cancel() does not actually unregister the socket; it only disables the event. | |||||
2014-12-15 | lib/nfs/Connection: implement mount timeout | Max Kellermann | 2 | -2/+31 | |
2014-12-15 | lib/nfs/Connection: add debug flag "in_destroy" | Max Kellermann | 2 | -0/+11 | |
2014-12-14 | lib/nfs/Connection: add assertion | Max Kellermann | 1 | -0/+2 | |
2014-12-14 | lib/nfs/Connection: fix reconnect after mount failure | Max Kellermann | 1 | -1/+1 | |
When mounting had not yet finished, SocketMonitor::IsDefined() was always false, due to the workaround at the beginning of the function that calls SocketMonitor::Steal(). This commit drops the IsDefined() check because it was never necessary and breaks reconnect. | |||||
2014-12-14 | lib/nfs/Connection: fix typo in code comment | Max Kellermann | 1 | -1/+1 | |
2014-12-14 | lib/nfs/Connection: fix memory leak (and assertion failure) | Max Kellermann | 3 | -0/+28 | |
nfs_destroy_context() will invoke all pending callbacks with err==-EINTR. In CancellableCallback::Callback(), this will invoke NfsConnection::DeferClose(), which however is only designed to be called from nfs_service(). In non-debug mode, this will leak memory because nfs_close_async() is never called. Workaround: before nfs_destroy_context(), invoke nfs_close_async() on all pending file handles. | |||||
2014-12-14 | lib/nfs/Connection: move code to Service() | Max Kellermann | 2 | -12/+28 | |
2014-12-14 | lib/nfs/Connection: add assertions | Max Kellermann | 1 | -0/+2 | |
2014-12-14 | lib/nfs/Connection: move code to method InternalClose() | Max Kellermann | 2 | -3/+17 | |
2014-12-14 | lib/nfs/Connection: make in_service and in_event debug-only flags | Max Kellermann | 2 | -0/+11 | |