DetachedSong: allow LoadFile(), Update() to throw

This commit is contained in:
Max Kellermann 2019-05-21 23:11:56 +02:00
parent 3fc4da382e
commit 9a78371b5c
3 changed files with 12 additions and 10 deletions

View File

@ -135,10 +135,10 @@ Song::UpdateFileInArchive(ArchiveFile &archive) noexcept
#endif
bool
DetachedSong::LoadFile(Path path) noexcept
DetachedSong::LoadFile(Path path)
{
FileInfo fi;
if (!GetFileInfo(path, fi) || !fi.IsRegular())
const FileInfo fi(path);
if (!fi.IsRegular())
return false;
TagBuilder tag_builder;
@ -151,13 +151,11 @@ DetachedSong::LoadFile(Path path) noexcept
}
bool
DetachedSong::Update() noexcept
DetachedSong::Update()
{
if (IsAbsoluteFile()) {
const AllocatedPath path_fs =
AllocatedPath::FromUTF8(GetRealURI());
if (path_fs.IsNull())
return false;
AllocatedPath::FromUTF8Throw(GetRealURI());
return LoadFile(path_fs);
} else if (IsRemote()) {

View File

@ -234,14 +234,18 @@ public:
/**
* Update the #tag and #mtime.
*
* Throws on error.
*
* @return true on success
*/
bool Update() noexcept;
bool Update();
/**
* Load #tag and #mtime from a local file.
*
* Throws on error.
*/
bool LoadFile(Path path) noexcept;
bool LoadFile(Path path);
};
#endif

View File

@ -96,7 +96,7 @@ DatabaseDetachSong(gcc_unused const Database &db,
}
bool
DetachedSong::LoadFile(Path path) noexcept
DetachedSong::LoadFile(Path path)
{
if (path.ToUTF8() == uri1) {
SetTag(MakeTag1a());