decoder/sidplay: sidplay_load_songlength_db() throws on error
This commit is contained in:
parent
a7976cd0f2
commit
4964ad7800
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user