# # patch "schema_migration.cc" # from [45720a308ebf69431d531f1e73a40bc52dcd6145] # to [1f99bdf41ad3ac4c1b8c1762f185235e6e8e384e] # # patch "transforms.cc" # from [d77bf924b7195f0556cde26404ac4120efc23273] # to [4a8abc713cd78dfc923d4178350efed6e7a5506c] # ======================================================================== --- schema_migration.cc 45720a308ebf69431d531f1e73a40bc52dcd6145 +++ schema_migration.cc 1f99bdf41ad3ac4c1b8c1762f185235e6e8e384e @@ -43,10 +43,13 @@ lowercase(string const & in) { size_t const sz = in.size(); - char buf[sz]; + char *buf=new char[sz]; in.copy(buf, sz); - use_facet< ctype >(locale::locale()).tolower(buf, buf+sz); - return string(buf,sz); + locale loc; + use_facet< ctype >(loc).tolower(buf, buf+sz); + string tmp= string(buf,sz); + delete[] buf; + return tmp; } static void ======================================================================== --- transforms.cc d77bf924b7195f0556cde26404ac4120efc23273 +++ transforms.cc 4a8abc713cd78dfc923d4178350efed6e7a5506c @@ -82,7 +82,7 @@ string encode_hexenc(string const & in) { - char buf[in.size() * 2]; + char *buf = new char[in.size() * 2]; static char const *tab = "0123456789abcdef"; char *c = buf; for (string::const_iterator i = in.begin(); @@ -91,7 +91,9 @@ *c++ = tab[(*i >> 4) & 0xf]; *c++ = tab[*i & 0xf]; } - return string(buf, in.size() * 2); + string tmp=string(buf, in.size() *2); + delete[] buf; + return tmp; } static inline char decode_hex_char(char c) @@ -106,7 +108,7 @@ string decode_hexenc(string const & in) { I(in.size() % 2 == 0); - char buf[in.size() / 2]; + char * buf = new char[in.size() / 2]; char *c = buf; for (string::const_iterator i = in.begin(); i != in.end(); ++i) @@ -116,7 +118,9 @@ t |= decode_hex_char(*i); *c++ = t; } - return string(buf, in.size() / 2); + string tmp=string(buf, in.size() / 2); + delete[] buf; + return tmp; } struct