Correctly initialize std::mbstate_t.

mbstate_t is an opaque type that is often a union or a struct, so setting it
directly to 0 is incorrect and causes build failures with some compilers
such as clang.
This commit is contained in:
Raphael Kubo da Costa
2013-04-29 23:56:07 +03:00
parent 55f1224d6e
commit 289b6abb43

View File

@ -78,9 +78,10 @@ namespace
char *dstBegin = dst;
char *dstEnd = dstBegin + dstLength;
std::mbstate_t st = 0;
std::mbstate_t st;
const wchar_t *source;
char *target;
memset(&st, 0, sizeof(st));
std::codecvt_base::result result = utf8_utf16_t().out(
st, srcBegin, srcEnd, source, dstBegin, dstEnd, target);
@ -123,9 +124,10 @@ namespace
wchar_t *dstBegin = dst;
wchar_t *dstEnd = dstBegin + dstLength;
std::mbstate_t st = 0;
std::mbstate_t st;
const char *source;
wchar_t *target;
memset(&st, 0, sizeof(st));
std::codecvt_base::result result = utf8_utf16_t().in(
st, srcBegin, srcEnd, source, dstBegin, dstEnd, target);