1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:28:11 +00:00

LibCore+Everywhere: Return ErrorOr from ConfigFile factory methods

I've attempted to handle the errors gracefully where it was clear how to
do so, and simple, but a lot of this was just adding
`release_value_but_fixme_should_propagate_errors()` in places.
This commit is contained in:
Sam Atkins 2022-02-06 13:33:42 +00:00 committed by Tim Flynn
parent 1a4dd47d5f
commit 8260135d4d
31 changed files with 77 additions and 51 deletions

View file

@ -14,35 +14,35 @@
namespace Core {
NonnullRefPtr<ConfigFile> ConfigFile::open_for_lib(String const& lib_name, AllowWriting allow_altering)
ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open_for_lib(String const& lib_name, AllowWriting allow_altering)
{
String directory = StandardPaths::config_directory();
auto path = String::formatted("{}/lib/{}.ini", directory, lib_name);
return adopt_ref(*new ConfigFile(path, allow_altering));
return adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(path, allow_altering));
}
NonnullRefPtr<ConfigFile> ConfigFile::open_for_app(String const& app_name, AllowWriting allow_altering)
ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open_for_app(String const& app_name, AllowWriting allow_altering)
{
String directory = StandardPaths::config_directory();
auto path = String::formatted("{}/{}.ini", directory, app_name);
return adopt_ref(*new ConfigFile(path, allow_altering));
return adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(path, allow_altering));
}
NonnullRefPtr<ConfigFile> ConfigFile::open_for_system(String const& app_name, AllowWriting allow_altering)
ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open_for_system(String const& app_name, AllowWriting allow_altering)
{
auto path = String::formatted("/etc/{}.ini", app_name);
return adopt_ref(*new ConfigFile(path, allow_altering));
return adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(path, allow_altering));
}
NonnullRefPtr<ConfigFile> ConfigFile::open(String const& filename, AllowWriting allow_altering)
ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open(String const& filename, AllowWriting allow_altering)
{
return adopt_ref(*new ConfigFile(filename, allow_altering));
return adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(filename, allow_altering));
}
NonnullRefPtr<ConfigFile> ConfigFile::open(String const& filename, int fd)
ErrorOr<NonnullRefPtr<ConfigFile>> ConfigFile::open(String const& filename, int fd)
{
return adopt_ref(*new ConfigFile(filename, fd));
return adopt_nonnull_ref_or_enomem(new (nothrow) ConfigFile(filename, fd));
}
ConfigFile::ConfigFile(String const& filename, AllowWriting allow_altering)