Max Kellermann
a543627abd
lib/nfs/Connection: fix memory leak (and assertion failure)
...
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 16:02:47 +01:00
Max Kellermann
80f2ba7fca
lib/nfs/Connection: move code to Service()
2014-12-14 15:45:10 +01:00
Max Kellermann
32bca64920
lib/nfs/Connection: add assertions
2014-12-14 15:40:29 +01:00
Max Kellermann
7fa1a84ec3
lib/nfs/Connection: move code to method InternalClose()
2014-12-14 15:38:09 +01:00
Max Kellermann
ab4bb26a0a
lib/nfs/Connection: make in_service and in_event debug-only flags
2014-12-14 15:20:40 +01:00
Max Kellermann
4b8d258cff
lib/nfs/Connection: fix crash while canceling a failing Open()
...
The method NfsConnection::CancellableCallback::Callback() will always
invoke NfsConnection::Close() on the file handle, even if the void
pointer is not a nfsfh. This can happen if the Open() was not
successful, e.g. when the file does not exist.
2014-12-14 15:16:01 +01:00
Max Kellermann
3c29aa6271
event/Loop: read the "again" flag while holding mutex
2014-12-14 14:47:36 +01:00
Max Kellermann
51464b4317
lib/nfs/Connection: add assertions
2014-12-14 14:24:49 +01:00
Max Kellermann
3f32a6b607
input/nfs: include cleanup
2014-12-14 14:21:11 +01:00
Max Kellermann
21aa1631a4
input/async: add API documentation
2014-12-14 14:21:11 +01:00
Max Kellermann
49968541fd
sticker/Match: add inequality operators
2014-12-12 22:26:04 +01:00
Max Kellermann
cc143105b8
sticker/Match: add operator "EQUALS"
...
Mapped to "=" in the MPD protocol. This is the first operator,
initially supporting value matches in the MPD protocol.
2014-12-12 22:16:00 +01:00
Max Kellermann
fed44e95b3
sticker/Song: add enum StickerOperator to sticker_song_find()
2014-12-12 22:10:24 +01:00
Max Kellermann
71ece56470
sticker/Database: move code to BindFind()
2014-12-12 22:04:43 +01:00
Max Kellermann
204a1de3fd
sticker/Database: use the Error library
2014-12-12 21:43:54 +01:00
Max Kellermann
80ddf4aecf
sticker/Database: always invoke sqlite3_reset() and sqlite3_clear_bindings()
2014-12-12 21:43:54 +01:00
Max Kellermann
12b4a666bc
lib/sqlite/Util: add ExecuteModified()
2014-12-12 21:43:54 +01:00
Max Kellermann
cfdbaf331e
sticker/Database: add wrapper for sqlite3_step()
2014-12-12 21:43:54 +01:00
Max Kellermann
052d350b19
sticker/Database: move SQLite helpers to lib/sqlite/Util.hxx
2014-12-12 21:42:51 +01:00
Max Kellermann
2ca18a7ee5
lib/sqlite/Domain: add Domain instance for SQLite
...
Replaces the sticker_domain for Error::domain.
2014-12-12 20:49:00 +01:00
Max Kellermann
7dbe5f4640
sticker/Database: remove redundant sqlite3_reset() calls
...
Call sqlite3_reset() only after a sqlite3_stmt* has been used, not
before. Assume it is already in reusable state.
2014-12-12 20:43:26 +01:00
Max Kellermann
432ecd1b6a
sticker/Database: require SQLite 3.7.3
...
SQLite 3.7.3 is the version shipped in Debian Squeeze (oldstable);
should be old enough to be the required version. Drop the
compatibility #ifdef.
2014-12-12 20:41:36 +01:00
Rasmus Steinke
7d9aa5b716
vorbiscomments: Remove support for non-standard "album artist" tags.
...
MPD used both "album artist" and "albumartist" tags and mapped them to one tag.
This could lead to issues, if a file had both tags, causing MPD to send
a list of albumartists instead of a single one.
Since "album artist" is not a standard tag anyway and even its originators
started to use the proper alternative, its time to say goodbye!
2014-12-12 18:28:11 +01:00
Max Kellermann
43267dc892
sticker/Database: make variables more local
2014-12-12 14:27:47 +01:00
Max Kellermann
3ec6c26e6c
sticker/Database: add sqlite3_bind_text() wrapper
2014-12-12 14:13:35 +01:00
Max Kellermann
7de684668b
sticker/Database: remove C-style (void)
2014-12-12 14:12:31 +01:00
Max Kellermann
2fec463542
util/HugeAllocator: disable MEM_LARGE_PAGES on Windows
...
MEM_LARGE_PAGES does not appear to work. Instead, MEM_RESERVE appears
to be necessary. Until I figure this out, this large pages are
disabled.
2014-12-12 13:20:58 +01:00
Max Kellermann
1affc641c4
input/Init: eliminate double colon from log message
2014-12-12 13:20:37 +01:00
Max Kellermann
4741d7bfe2
Merge branch 'v0.19.x'
2014-12-12 13:14:29 +01:00
Max Kellermann
aea99a1222
decoder/ffpmeg: make variables more local
2014-12-11 10:58:33 +01:00
Max Kellermann
7c8038e2da
decoder/ffpmeg: simplify ffmpeg_send_packet()
2014-12-11 10:58:06 +01:00
Max Kellermann
673336297d
decoder/ffmpeg: support stream tags
2014-12-11 10:52:40 +01:00
Max Kellermann
ee4b7042ce
decoder/ffpmeg: move code to FfmpegScanMetadata()
2014-12-11 10:08:08 +01:00
Max Kellermann
310ab7d41b
NEWS: mention ffmpeg/MixRamp
2014-12-10 14:01:12 +01:00
Max Kellermann
fc1796f3e8
decoder/ffmpeg: support ReplayGain and MixRamp
2014-12-10 13:45:29 +01:00
Max Kellermann
d8926ea5eb
decoder/ffpmeg: use forward declarations
2014-12-10 13:42:34 +01:00
Max Kellermann
0c1e428c7d
decoder/ffpmeg: rename functions to CamelCase
2014-12-10 13:05:28 +01:00
Max Kellermann
bcd97f5887
decoder/ffmpeg: optimize ffmpeg_scan_dictionary()
...
Don't scan tag items if the handler doesn't implement the tag()
method.
2014-12-10 09:35:28 +01:00
Max Kellermann
0faf86c2b9
ReplayGainInfo: add method IsDefined()
2014-12-10 07:57:46 +01:00
Max Kellermann
b30957c89c
ReplayGainInfo: make IsDefined() constexpr
2014-12-10 07:57:07 +01:00
Max Kellermann
dbbcbc3616
Util/Manual: cast via void* to avoid alignment warnings
2014-12-09 23:10:05 +01:00
Max Kellermann
1889150013
Util/Manual: use Get() in Destruct()
2014-12-09 23:08:53 +01:00
Max Kellermann
14f9cdde6b
Util/Manual: add assertion to Get()
2014-12-09 23:08:22 +01:00
Max Kellermann
3ab0691eec
Util/Manual: add method Get()
...
May be more clear than operators.
2014-12-09 23:07:43 +01:00
Max Kellermann
1e073a196f
util/Manual: use gcc_alignas()
2014-12-09 23:05:47 +01:00
Max Kellermann
7b60e3916c
DespotifyUtils: make string buffers temporary
2014-12-09 22:14:47 +01:00
Max Kellermann
c486c5bf5b
DespotifyUtils: fix coding style
2014-12-09 22:10:17 +01:00
Max Kellermann
fc0b6d143a
DespotifyUtils: use ARRAY_SIZE()
2014-12-09 22:06:22 +01:00
Max Kellermann
5f4252bcd2
ConfigTemplates: use ARRAY_SIZE()
2014-12-09 22:04:34 +01:00
Max Kellermann
a588aef921
output/oss: make the static arrays "constexpr"
2014-12-09 22:02:18 +01:00