Commit 4964ad78 authored by Max Kellermann's avatar Max Kellermann

decoder/sidplay: sidplay_load_songlength_db() throws on error

parent a7976cd0
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
#include "util/AllocatedString.hxx" #include "util/AllocatedString.hxx"
#include "util/CharUtil.hxx" #include "util/CharUtil.hxx"
#include "util/ByteOrder.hxx" #include "util/ByteOrder.hxx"
#include "util/Manual.hxx" #include "util/RuntimeError.hxx"
#include "Log.hxx" #include "Log.hxx"
#ifdef HAVE_SIDPLAYFP #ifdef HAVE_SIDPLAYFP
...@@ -101,8 +101,11 @@ static void loadRom(const Path rom_path, uint8_t *dump) ...@@ -101,8 +101,11 @@ static void loadRom(const Path rom_path, uint8_t *dump)
} }
#endif #endif
/**
* Throws on error.
*/
static std::unique_ptr<SidDatabase> static std::unique_ptr<SidDatabase>
sidplay_load_songlength_db(const Path path) noexcept sidplay_load_songlength_db(const Path path)
{ {
auto db = std::make_unique<SidDatabase>(); auto db = std::make_unique<SidDatabase>();
#ifdef HAVE_SIDPLAYFP #ifdef HAVE_SIDPLAYFP
...@@ -110,12 +113,9 @@ sidplay_load_songlength_db(const Path path) noexcept ...@@ -110,12 +113,9 @@ sidplay_load_songlength_db(const Path path) noexcept
#else #else
bool error = db->open(path.c_str()) < 0; bool error = db->open(path.c_str()) < 0;
#endif #endif
if (error) { if (error)
FormatError(sidplay_domain, throw FormatRuntimeError("unable to read songlengths file %s: %s",
"unable to read songlengths file %s: %s", path.c_str(), db->error());
path.c_str(), db->error());
return nullptr;
}
return db; return db;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment