Commit cec5601e authored by bar@bar.mysql.r18.ru's avatar bar@bar.mysql.r18.ru

charset.c:

  memory leak fix
  I will move my_once_strdup to my_alloc.c later. 
parent 00025255
...@@ -172,16 +172,26 @@ static void simple_cs_init_functions(CHARSET_INFO *cs) ...@@ -172,16 +172,26 @@ static void simple_cs_init_functions(CHARSET_INFO *cs)
cs->mbmaxlen = 1; cs->mbmaxlen = 1;
} }
/* FIXME: BAR: move to more proper place, my_alloc.c I suppose */
static char *my_once_strdup(const char *src,myf myflags)
{
uint len=strlen(src);
char *dst=my_once_alloc(len+1,myflags);
if (dst)
memcpy(dst,src,len+1);
return dst;
}
static void simple_cs_copy_data(CHARSET_INFO *to, CHARSET_INFO *from) static void simple_cs_copy_data(CHARSET_INFO *to, CHARSET_INFO *from)
{ {
to->number = from->number ? from->number : to->number; to->number = from->number ? from->number : to->number;
to->state |= from->state; to->state |= from->state;
if (from->csname) if (from->csname)
to->csname=my_strdup(from->csname,MYF(MY_WME)); to->csname=my_once_strdup(from->csname,MYF(MY_WME));
if (from->name) if (from->name)
to->name=my_strdup(from->name,MYF(MY_WME)); to->name=my_once_strdup(from->name,MYF(MY_WME));
if (from->ctype) if (from->ctype)
{ {
......
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