diff --git a/src/plugins/pol/encoding.h b/src/plugins/pol/encoding.h index 0216f75..a9f4e3d 100644 --- a/src/plugins/pol/encoding.h +++ b/src/plugins/pol/encoding.h @@ -149,19 +149,18 @@ inline std::basic_string convert(string_const_iterator char *inbuf = reinterpret_cast(const_cast(&*begin)); size_t inbytesLeft = std::distance(begin, end) * sizeof(source_char); - auto temp = std::make_unique>(); - char *outbuf = temp->data(); + auto temp = std::make_unique>(); + target_char *outbuf = temp->data(); size_t outbytesLeft = temp->size(); while (inbytesLeft > 0) { - auto ret = iconv(conv, &inbuf, &inbytesLeft, &outbuf, &outbytesLeft); + auto ret = iconv(conv, &inbuf, &inbytesLeft, reinterpret_cast(&outbuf), &outbytesLeft); if (ret == ICONV_ERROR_CODE && errno != E2BIG) { throw std::runtime_error("LINE: " + std::to_string(__LINE__) + ", FILE: " + __FILE__ + ", Encountered corrupted unicode string."); } - result.append(reinterpret_cast(temp->data()), - reinterpret_cast(outbuf)); + result.append(temp->data(), outbuf); outbuf = temp->data(); outbytesLeft = temp->size(); }