decoder/sidplay: sidplay_load_songlength_db() throws on error

This commit is contained in:
Max Kellermann 2019-08-10 12:28:53 +02:00
parent a7976cd0f2
commit 4964ad7800

View File

@ -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)
} }
#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
#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;
} }