Commit Graph

10778 Commits

Author SHA1 Message Date
Max Kellermann 686a53215d db/proxy: use AtScopeExit() 2016-03-18 23:10:42 +01:00
Max Kellermann 6190da1300 test/DumpDatabase: use AtScopeExit() 2016-03-18 22:53:16 +01:00
Max Kellermann 6fd7d8191e db/simple: refactor Check() to throw exception 2016-03-18 22:21:09 +01:00
Max Kellermann 2ccd1cc9f0 db/simple: remove misplaced "pure" attribute 2016-03-18 22:18:09 +01:00
Max Kellermann 8167bdd978 db/simple: handle Database::Open() exceptions in Mount() 2016-03-18 18:55:54 +01:00
Max Kellermann dfb3e34f7b db/lazy: remove obsolete class
Obsoleted by commit d4d4d621
2016-03-18 18:48:27 +01:00
Max Kellermann 45ee75055e db/upnp: remove obsolete code comment 2016-03-18 18:48:00 +01:00
Max Kellermann 5da4e321c0 Stats: catch exceptions 2016-03-18 18:46:43 +01:00
Max Kellermann e8519fecb4 release v0.19.14
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJW7DpiAAoJECNuiljG20USwwkP/1z3HeJjzzrwySH9MVeFpVtR
 fr9XL2pO6zTcaVAIk/fNWtrcT6G5IuK079GKVa2jADN8KRMfCvGDEgHfGevjRNmc
 USXkUm2pij67S3Ic74WhDISt32gYzBOCo/nFIFncLyjXXPW4WRq/3rb8tMwffZen
 d/wqZmzHGEom8z0BTLASY/QM2KTBXOHgAhTb4M8lowxlesK8O/6Mx14UxgcIKIDf
 1lqRhaF6NRS56uwjt8GwkaH9Td8wJG/inVLQo08z26ycJNaPrkxSNrWsSzQdBr8Q
 DanbH4nefj8L33PVCV9nNPSjGe5s3R3D9WVEvt+cJ71UqBUQJkYgXaYRLQVEs1Mk
 80a9MlFECF1UiS9FwmnUXRAY0Zzb19NLjm+v3CeMANqoFQ/OQaIe3/iaM0hT0yto
 akHWhgEE4SuwcHPpUXQlKlbYHW6DaHBULwpzcKxFUeQkzx5m4FshBSL73TEEyv8+
 bRc4tGIqA2Pep/Ptg3R9mJZ5wr/crtJby9FxNUkXiGZeiHEya+mRdGVyogMnce/K
 BTg1bhiaE7Ofdxd4NuUIOZ6OkjpFnnQajJwnR1dJrZG+avOrGjcBPH5QGHWEYfs7
 hVQhea2ehbcqQPq5celaZkL30SCxZmuN/0Lbmc8y7tpshLkdSUxmBoPSjvUD/UUz
 JyZf+npL5nmtF0Pqz7W8
 =McwP
 -----END PGP SIGNATURE-----

Merge tag 'v0.19.14'

release v0.19.14
2016-03-18 18:41:14 +01:00
Max Kellermann ff35aa07dc release v0.19.14 2016-03-18 18:26:58 +01:00
Max Kellermann 06c172838c queue/PlaylistUpdate: catch and ignore DatabaseError
Fixes regression by commit 42f7df96
2016-03-18 18:25:16 +01:00
Max Kellermann 1543dd85b5 queue/Playlist: don't let StaleSong() interrupt playback
http://bugs.musicpd.org/view.php?id=4470
2016-03-18 18:08:13 +01:00
Max Kellermann f37a1026f9 queue/Playlist: rename DeleteSong() to StaleSong() 2016-03-18 18:01:01 +01:00
Max Kellermann 91fb7fa3d8 queue/Playlist: pass unsigned to PlayOrder() 2016-03-18 17:49:29 +01:00
Max Kellermann 7b70153068 queue/Playlist: document that current/queued are "order number" 2016-03-18 17:35:29 +01:00
Max Kellermann 7e096ee2c5 db/update/Remove: update code comment 2016-03-18 16:58:06 +01:00
Max Kellermann 86a90daf1b db/update/Remove: pass URI to Remove() 2016-03-18 16:57:43 +01:00
Max Kellermann 42f7df9681 db/update/Remove: reimplement as a non-blocking queue
This reduces overhead for two reasons:

1. calls to Remove() are non-blocking

2. RunDeferred() may work on large chunks at a time, reducing the
   number of RunDeferred() calls
2016-03-18 16:43:02 +01:00
Max Kellermann 2edad38c7c db/DatabaseListener: pass URI to OnDatabaseSongRemoved()
There's no point in passing a LightSong reference here; the callee is
interested only in the URI.
2016-03-18 16:22:33 +01:00
Max Kellermann 296ee4961e sticker/Song: add _delete() overload with "const char *" 2016-03-18 16:21:26 +01:00
Max Kellermann b1becddf11 util/StringView: add method Strip() 2016-03-18 15:40:49 +01:00
Max Kellermann 667edcd9d0 util/IterableSplitString: cheaper variant of SplitString() 2016-03-18 14:11:50 +01:00
Max Kellermann b4e75bedf0 util/StringView: make nullptr_t constructor "constexpr" 2016-03-18 14:11:50 +01:00
Max Kellermann 5482ef5451 util/SplitString: relicense to BSD-2 2016-03-18 13:18:31 +01:00
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
Max Kellermann f1285a6dfd tag/TagPool: add constexpr MAX_REF 2016-03-14 08:07:22 +01:00
Max Kellermann cf7c1afb93 tag/TagPool: use prime number for NUM_SLOTS 2016-03-14 08:04:51 +01:00
Max Kellermann f254831aa6 Instance: remove redundant "virtual" keywords 2016-03-10 23:16:35 +01:00
Max Kellermann bd40c8649c Partition: use Instance::EmitIdle() 2016-03-10 23:12:03 +01:00
Max Kellermann 7c53df2ed1 Partition: eliminate GlobalEvents.hxx, add mask constants 2016-03-10 23:10:14 +01:00
Max Kellermann 5ca6026787 Partition: use CallbackMaskMonitor, replacing class GlobalEvents::Monitor 2016-03-10 22:52:16 +01:00
Max Kellermann 483daa5882 Instance: move GlobalEvents::Monitor to Partition
All remaining events are specific to the Partition.
2016-03-10 22:47:47 +01:00
Max Kellermann e2bc92d128 Instance: replace IdleMaskMonitor with CallMaskMonitor 2016-03-10 22:38:10 +01:00
Max Kellermann 5ffe3773d4 event/MaskMonitor: add variant with bound method 2016-03-10 22:37:33 +01:00
Max Kellermann a7c68018a2 util/Callback: new utility class for callback functions 2016-03-10 20:42:19 +01:00
Max Kellermann 5ffb82993e IdleMonitor: new class to replace GlobalEvents::IDLE
Use MaskMonitor to eliminate duplicate code.
2016-03-10 20:32:43 +01:00
Max Kellermann 07add0bd91 Instance: add base class which owns the EventLoop 2016-03-10 20:32:35 +01:00
Max Kellermann 9a9b6fa326 queue/Playlist: add interface QueueListener, replacing calls to idle_add() 2016-03-10 20:10:14 +01:00
Max Kellermann ba43ec5759 queue/Playlist: remove redundant "struct" keyword 2016-03-10 20:03:45 +01:00
Max Kellermann 008a9560fe queue/Playlist: call OnModified(), eliminate duplicate code 2016-03-10 20:03:01 +01:00
Max Kellermann 6ff01cc72c Merge branch 'v0.19.x' 2016-03-07 14:30:43 +01:00
Max Kellermann e140a28073 archive/iso9660: check path buffer bounds 2016-03-07 14:21:01 +01:00
Max Kellermann de61c3b962 archive/iso9660: use a single path buffer for Visit()
Avoid wasting 4 kB stack per directory level.
2016-03-07 14:01:52 +01:00
Max Kellermann c46fc4531b archive/iso9660: move the "." and ".." checks up 2016-03-07 14:01:40 +01:00
Max Kellermann 065a9ed10f archive/iso9660: add local variable "filename" 2016-03-07 13:57:07 +01:00
Max Kellermann e44c0254f7 archive/iso9660: make variables more local 2016-03-07 13:15:07 +01:00
Max Kellermann 13f9f0315f util/HugeAllocator: fix division by zero due to inverted check
There were two ways this could fail:

1. division by zero when sysconf(_SC_PAGESIZE)==0

2. mmap() failure because the size parameter is not aligned to page
   size

Neither ever happened: sysconf() never fails, and the only caller
passes a size that is already aligned.  Phew.
2016-03-06 23:53:41 +01:00
Max Kellermann 1532ffe215 protocol/ArgParser: fix range check
The old check

 unsigned(value) > std::numeric_limits<unsigned>::max()

.. cannot ever fail.
2016-03-06 23:41:08 +01:00
Max Kellermann b24cbc68ba decoder/dsdiff: fix off-by-one buffer overflow 2016-03-06 23:28:29 +01:00
Max Kellermann 976fdd76c1 decoder/opus: limit tag size to 64 kB 2016-03-06 23:26:48 +01:00