summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorunknown <bar@mysql.com>2005-07-26 17:53:18 +0500
committerunknown <bar@mysql.com>2005-07-26 17:53:18 +0500
commit4fc1f429c1bf9a7f76692fb3df97cb42570cea4a (patch)
tree2026bf28ec875d72333b3e4ae00c21606a55b17e /mysys
parent3521daed379a809a13d7fb61c45a5a102bae4797 (diff)
parent08216d3abf6a66dc1d58449d2b0e60d028cd26f1 (diff)
downloadmariadb-git-4fc1f429c1bf9a7f76692fb3df97cb42570cea4a.tar.gz
Merge mysql.com:/usr/home/bar/mysql-4.1
into mysql.com:/usr/home/bar/mysql-5.0 mysys/charset.c: Auto merged
Diffstat (limited to 'mysys')
-rw-r--r--mysys/charset.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/mysys/charset.c b/mysys/charset.c
index 4920e7806a2..fbdfa12c7a1 100644
--- a/mysys/charset.c
+++ b/mysys/charset.c
@@ -383,26 +383,28 @@ static my_bool init_available_charsets(myf myflags)
while we may changing the cs_info_table
*/
pthread_mutex_lock(&THR_LOCK_charset);
-
- bzero(&all_charsets,sizeof(all_charsets));
- init_compiled_charsets(myflags);
-
- /* Copy compiled charsets */
- for (cs=all_charsets;
- cs < all_charsets+array_elements(all_charsets)-1 ;
- cs++)
+ if (!charset_initialized)
{
- if (*cs)
+ bzero(&all_charsets,sizeof(all_charsets));
+ init_compiled_charsets(myflags);
+
+ /* Copy compiled charsets */
+ for (cs=all_charsets;
+ cs < all_charsets+array_elements(all_charsets)-1 ;
+ cs++)
{
- if (cs[0]->ctype)
- if (init_state_maps(*cs))
- *cs= NULL;
+ if (*cs)
+ {
+ if (cs[0]->ctype)
+ if (init_state_maps(*cs))
+ *cs= NULL;
+ }
}
+
+ strmov(get_charsets_dir(fname), MY_CHARSET_INDEX);
+ error= my_read_charset_file(fname,myflags);
+ charset_initialized=1;
}
-
- strmov(get_charsets_dir(fname), MY_CHARSET_INDEX);
- error= my_read_charset_file(fname,myflags);
- charset_initialized=1;
pthread_mutex_unlock(&THR_LOCK_charset);
}
return error;