Commit 3776743d authored by unknown's avatar unknown

fixed coredump in charset.c - bk messed up, so here is another try to push it


mysys/charset.c:
  fixed coredump
parent c9ed6ae4
...@@ -193,7 +193,9 @@ static my_bool init_available_charsets(myf myflags) ...@@ -193,7 +193,9 @@ static my_bool init_available_charsets(myf myflags)
charset_initialized=1; charset_initialized=1;
pthread_mutex_unlock(&THR_LOCK_charset); pthread_mutex_unlock(&THR_LOCK_charset);
} }
return error || !available_charsets[0]; if(!available_charsets || !available_charsets[0])
error = TRUE;
return error;
} }
...@@ -467,6 +469,7 @@ char * list_charsets(myf want_flags) ...@@ -467,6 +469,7 @@ char * list_charsets(myf want_flags)
DYNAMIC_STRING s; DYNAMIC_STRING s;
char *p; char *p;
(void)init_available_charsets(MYF(0));
init_dynamic_string(&s, NullS, 256, 1024); init_dynamic_string(&s, NullS, 256, 1024);
if (want_flags & MY_COMPILED_SETS) if (want_flags & MY_COMPILED_SETS)
...@@ -485,16 +488,17 @@ char * list_charsets(myf want_flags) ...@@ -485,16 +488,17 @@ char * list_charsets(myf want_flags)
char buf[FN_REFLEN]; char buf[FN_REFLEN];
MY_STAT stat; MY_STAT stat;
for (c = available_charsets; *c; ++c) if((c=available_charsets))
{ for (; *c; ++c)
if (charset_in_string((*c)->name, &s)) {
continue; if (charset_in_string((*c)->name, &s))
get_charset_conf_name((*c)->number, buf); continue;
if (!my_stat(buf, &stat, MYF(0))) get_charset_conf_name((*c)->number, buf);
continue; /* conf file doesn't exist */ if (!my_stat(buf, &stat, MYF(0)))
dynstr_append(&s, (*c)->name); continue; /* conf file doesn't exist */
dynstr_append(&s, " "); dynstr_append(&s, (*c)->name);
} dynstr_append(&s, " ");
}
} }
if (want_flags & MY_INDEX_SETS) if (want_flags & MY_INDEX_SETS)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment