diff --git a/src/config/theme.c b/src/config/theme.c index 81b43368..70b02b2f 100644 --- a/src/config/theme.c +++ b/src/config/theme.c @@ -56,9 +56,9 @@ #include "config/preferences.h" #include "config/color.h" -static GString* theme_loc; -static GKeyFile* theme; -static GHashTable* defaults; +static GString* theme_loc = NULL; +static GKeyFile* theme = NULL; +static GHashTable* defaults = NULL; static void _load_preferences(void); static void _theme_list_dir(const gchar* const dir, GSList** result); @@ -86,6 +86,12 @@ _theme_close(void) void theme_init(const char* const theme_name) { + if (defaults || theme_loc || theme) { + log_warning("theme_init(): Detected non-NULL state (theme=%p, theme_loc=%p, defaults=%p). Cleaning up previous initialization.", + theme, theme_loc, defaults); + _theme_close(); + } + if (!_theme_load_file(theme_name)) { log_error("Loading theme %s failed.", theme_name);