diff options
author | Max Kellermann <max@musicpd.org> | 2018-08-02 10:16:56 +0200 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2018-08-02 10:17:31 +0200 |
commit | 22192adbc8b150cf17446936a67d91227e787581 (patch) | |
tree | bebceb12ccbf8a10bc1def6b54dc4bab21c344df /src | |
parent | b8f3de693f3c4a93041585f1f5da26eff3cc7117 (diff) |
lib/icu/Init: add class ScopeIcuInit
Diffstat (limited to 'src')
-rw-r--r-- | src/Main.cxx | 5 | ||||
-rw-r--r-- | src/lib/icu/Init.hxx | 14 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/Main.cxx b/src/Main.cxx index f96146336..41a34c0ee 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -466,8 +466,7 @@ MainOrThrow(int argc, char *argv[]) #endif #endif - IcuInit(); - + const ScopeIcuInit icu_init; const ScopeNetInit net_init; #ifdef ENABLE_DBUS @@ -720,8 +719,6 @@ mpd_main_after_fork(const ConfigData &raw_config, const Config &config) daemonize_finish(); #endif - IcuFinish(); - return EXIT_SUCCESS; } diff --git a/src/lib/icu/Init.hxx b/src/lib/icu/Init.hxx index 95646e314..c26e018ef 100644 --- a/src/lib/icu/Init.hxx +++ b/src/lib/icu/Init.hxx @@ -37,4 +37,18 @@ static inline void IcuFinish() noexcept {} #endif +class ScopeIcuInit { +public: + ScopeIcuInit() { + IcuInit(); + } + + ~ScopeIcuInit() noexcept { + IcuFinish(); + } + + ScopeIcuInit(const ScopeIcuInit &) = delete; + ScopeIcuInit &operator=(const ScopeIcuInit &) = delete; +}; + #endif |