diff options
author | Max Kellermann <max@musicpd.org> | 2017-09-08 14:45:53 +0200 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2017-09-08 14:45:53 +0200 |
commit | d0f6131ba40e8336eb4f62f19f0becc5b4e6cd20 (patch) | |
tree | 1e12fbe2f01ba224032f034fdddebf1dae0cec77 /src/output/plugins/ShoutOutputPlugin.cxx | |
parent | 9cc37bdea2a55ca022c92902f943443badb94bce (diff) |
output/Interface: allow Pause() to throw exception
Coverity discovered that the Pulse plugin could throw exceptions from
Pause(), but that method was marked "noexcept" because its caller was
not designed to catch exceptions. So instead of avoiding exceptions
(by catching and logging them in each and every implementation), let's
allow them, and do the catch/log game in the MPD core.
Diffstat (limited to 'src/output/plugins/ShoutOutputPlugin.cxx')
-rw-r--r-- | src/output/plugins/ShoutOutputPlugin.cxx | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/output/plugins/ShoutOutputPlugin.cxx b/src/output/plugins/ShoutOutputPlugin.cxx index b2aa904b4..70c9fc284 100644 --- a/src/output/plugins/ShoutOutputPlugin.cxx +++ b/src/output/plugins/ShoutOutputPlugin.cxx @@ -65,7 +65,7 @@ struct ShoutOutput final : AudioOutput { void SendTag(const Tag &tag) override; size_t Play(const void *chunk, size_t size) override; void Cancel() noexcept override; - bool Pause() noexcept override; + bool Pause() override; private: void WritePage(); @@ -378,16 +378,12 @@ ShoutOutput::Play(const void *chunk, size_t size) } bool -ShoutOutput::Pause() noexcept +ShoutOutput::Pause() { static char silence[1020]; - try { - encoder->Write(silence, sizeof(silence)); - WritePage(); - } catch (const std::runtime_error &) { - return false; - } + encoder->Write(silence, sizeof(silence)); + WritePage(); return true; } |