| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
| |
std::auto_ptr is deprecated, and std::unique_ptr is much better
anyway.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Don't abort the process if there's not enough memory. This buffer is
not important and can be large.
|
|
|
|
| |
Merge two free() calls.
|
|
|
|
|
| |
A bug report was submitted with a 600 kB ID3 tag that could not be
read by MPD.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
This file has been removed in newer MPD versions, so don't care about
it now.
|
| |
| |
| |
| | |
Fixes gcc5 warning.
|
| |
| |
| |
| | |
This can eliminate the ad-hoc "#ifdef WIN32" and can also support other platforms lacking it as well (including Darwin 9).
|
| |
| |
| |
| |
| | |
Caused a build failure with uClibc because snprintf() was not
available.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| | |
Return false on error, not nullptr.
|
| |
| |
| |
| | |
New in clang 3.6.
|
| |
| |
| |
| | |
Fixes -Winconsistent-missing-override (clang 3.6).
|
|\| |
|
| |
| |
| |
| | |
Return false on error, not nullptr.
|
| |
| |
| |
| | |
Fixes -Winconsistent-missing-override (clang 3.6).
|
| |
| |
| |
| | |
New in clang 3.6.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\| |
|
| |
| |
| |
| |
| | |
The definition of the playlist_plugin struct member of the embcue
plugin was incorrect.
|
| |
| |
| |
| |
| | |
Works around assertion failure due to something that appears to be a
(minor) FFmpeg bug.
|
| |
| |
| |
| | |
setvbuf() does not seem to have an effect on Windows.
|
| |
| |
| |
| |
| | |
Make sure everything gets logged right away. No delays because
stdio's buffer is not yet full.
|
| |
| |
| |
| |
| | |
Without MEM_COMMIT, the reserved address space is not accessible, and
MPD crashes.
|
| | |
|
| |
| |
| |
| | |
Fixes bogus assertion failure.
|
| |
| |
| |
| |
| | |
SocketMonitor::Cancel() does not actually unregister the socket; it
only disables the event.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|