diff options
author | David Robillard <d@drobilla.net> | 2019-03-07 22:41:35 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-03-08 09:07:18 +0100 |
commit | 8eba534e99cd8db29cca03035a115312935a22a3 (patch) | |
tree | cc13f89d5bdad33935fa4e8c396a740229be6b1e /src/Configuration.cpp | |
parent | acb958e95d0e8ca1b0dd912fe8bbf2e14e5f74e9 (diff) | |
download | ingen-8eba534e99cd8db29cca03035a115312935a22a3.tar.gz ingen-8eba534e99cd8db29cca03035a115312935a22a3.tar.bz2 ingen-8eba534e99cd8db29cca03035a115312935a22a3.zip |
Use smart pointers to handle FILE streams
Diffstat (limited to 'src/Configuration.cpp')
-rw-r--r-- | src/Configuration.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Configuration.cpp b/src/Configuration.cpp index c05c516e..d0d606e8 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -18,6 +18,7 @@ #include <cerrno> #include <cstring> #include <iostream> +#include <memory> #include <thread> #include "ingen/Configuration.hpp" @@ -279,7 +280,8 @@ Configuration::save(URIMap& uri_map, } // Attempt to open file for writing - FILE* file = fopen(path.c_str(), "w"); + std::unique_ptr<FILE, decltype(&fclose)> file{fopen(path.c_str(), "w"), + &fclose}; if (!file) { throw FileError((fmt("Failed to open file %1% (%2%)") % path % strerror(errno)).str()); @@ -302,7 +304,7 @@ Configuration::save(URIMap& uri_map, env, &base_uri, serd_file_sink, - file); + file.get()); // Write a prefix directive for each prefix in the environment serd_env_foreach(env, (SerdPrefixSink)serd_writer_set_prefix, writer); @@ -334,7 +336,6 @@ Configuration::save(URIMap& uri_map, serd_writer_free(writer); serd_env_free(env); serd_node_free(&base); - fclose(file); return path; } |