Protect gswe_init() from re-entry
As gswe_init() calls functions that call gswe_init(), gswe_init() must be protected against such re-entry.
This commit is contained in:
parent
367b777a2d
commit
bd8c1532e7
@ -42,6 +42,7 @@ GHashTable *gswe_house_system_info_table;
|
||||
GHashTable *gswe_aspect_info_table;
|
||||
GHashTable *gswe_antiscion_axis_info_table;
|
||||
GsweTimestamp *gswe_full_moon_base_date;
|
||||
static gboolean gswe_initializing = FALSE;
|
||||
|
||||
#define ADD_PLANET(ht, v, i, s, r, n, o, h) \
|
||||
(v) = gswe_planet_info_new(); \
|
||||
@ -119,15 +120,21 @@ gswe_init(void)
|
||||
GsweAspectInfo *aspect_info;
|
||||
GsweAntiscionAxisInfo *antiscion_axis_info;
|
||||
|
||||
if (gswe_initialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (gswe_initializing) {
|
||||
return;
|
||||
}
|
||||
|
||||
gswe_initializing = TRUE;
|
||||
|
||||
/* Before 2.34, g_type_init() must have been called. Let's do it! */
|
||||
#if !GLIB_CHECK_VERSION(2, 36, 0)
|
||||
g_type_init();
|
||||
#endif
|
||||
|
||||
if (gswe_initialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
|
||||
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user