summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2015-11-12 15:10:40 +0900
committerAkira TAGOH <akira@tagoh.org>2015-11-12 15:11:23 +0900
commit85c65904d2056b6108cad9323e46e9a21979577d (patch)
tree7f1f369c9586e1f99da71716e298bdfc48aca7d0
parent83b66d75fa58b40e0a5c6739ef31ebd7f74860cd (diff)
Initialize databases just once.
-rw-r--r--liblangtag/lt-database.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/liblangtag/lt-database.c b/liblangtag/lt-database.c
index c9776b1..6dfd992 100644
--- a/liblangtag/lt-database.c
+++ b/liblangtag/lt-database.c
@@ -83,17 +83,26 @@ lt_db_get_datadir(void)
* lt_db_initialize:
*
* Initialize all of the language tags database instance.
+ * If the databases are already initialized, it won't do
+ * nothing.
*/
void
lt_db_initialize(void)
{
- lt_db_get_lang();
- lt_db_get_extlang();
- lt_db_get_script();
- lt_db_get_region();
- lt_db_get_variant();
- lt_db_get_grandfathered();
- lt_db_get_redundant();
+ if (!__db_lang)
+ lt_db_get_lang();
+ if (!__db_extlang)
+ lt_db_get_extlang();
+ if (!__db_script)
+ lt_db_get_script();
+ if (!__db_region)
+ lt_db_get_region();
+ if (!__db_variant)
+ lt_db_get_variant();
+ if (!__db_grandfathered)
+ lt_db_get_grandfathered();
+ if (!__db_redundant)
+ lt_db_get_redundant();
lt_ext_modules_load();
}