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_aspect_info_table;
|
||||||
GHashTable *gswe_antiscion_axis_info_table;
|
GHashTable *gswe_antiscion_axis_info_table;
|
||||||
GsweTimestamp *gswe_full_moon_base_date;
|
GsweTimestamp *gswe_full_moon_base_date;
|
||||||
|
static gboolean gswe_initializing = FALSE;
|
||||||
|
|
||||||
#define ADD_PLANET(ht, v, i, s, r, n, o, h) \
|
#define ADD_PLANET(ht, v, i, s, r, n, o, h) \
|
||||||
(v) = gswe_planet_info_new(); \
|
(v) = gswe_planet_info_new(); \
|
||||||
@ -119,15 +120,21 @@ gswe_init(void)
|
|||||||
GsweAspectInfo *aspect_info;
|
GsweAspectInfo *aspect_info;
|
||||||
GsweAntiscionAxisInfo *antiscion_axis_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! */
|
/* Before 2.34, g_type_init() must have been called. Let's do it! */
|
||||||
#if !GLIB_CHECK_VERSION(2, 36, 0)
|
#if !GLIB_CHECK_VERSION(2, 36, 0)
|
||||||
g_type_init();
|
g_type_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (gswe_initialized) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
|
bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
|
||||||
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user