summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2018-08-02 10:16:56 +0200
committerMax Kellermann <max@musicpd.org>2018-08-02 10:17:31 +0200
commit22192adbc8b150cf17446936a67d91227e787581 (patch)
treebebceb12ccbf8a10bc1def6b54dc4bab21c344df /src
parentb8f3de693f3c4a93041585f1f5da26eff3cc7117 (diff)
lib/icu/Init: add class ScopeIcuInit
Diffstat (limited to 'src')
-rw-r--r--src/Main.cxx5
-rw-r--r--src/lib/icu/Init.hxx14
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