Was caused by some safety things of making sure we've for NULL terminator for the buffer when doing mbs<->wcs conversion, but it turns out this simply confuses str::string and it can no longer have proper .size(). Let's assume behavior of string allocation is same all over the std, and we can avoid having that extra null-terminator allocated.