From 6b1a3e615bed4eb420a16d4e680d6aa4b463cd74 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Thu, 16 Nov 2023 23:22:51 -0800 Subject: [PATCH] fix UTF-16 decoding bug again --- src/Text.cc | 2 +- src/Text.hh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Text.cc b/src/Text.cc index ba315f2b..89fb3655 100644 --- a/src/Text.cc +++ b/src/Text.cc @@ -84,7 +84,7 @@ string TextTranscoder::operator()(const void* src, size_t src_size) { const void* orig_src = src; deque blocks; while (src_size > 0) { - // Assume 2x input size on average, but always alocate at least 4 bytes + // Assume 2x input size on average, but always allocate at least 4 bytes string& block = blocks.emplace_back(max((src_size << 2), 4), '\0'); char* dest = block.data(); size_t dest_size = block.size(); diff --git a/src/Text.hh b/src/Text.hh index 88efc80c..49205b88 100644 --- a/src/Text.hh +++ b/src/Text.hh @@ -25,7 +25,7 @@ public: size_t bytes_read; size_t bytes_written; }; - Result operator()(void* dest, size_t dest_size, const void* src, size_t src_bytes, bool truncate_oversize_result); + Result operator()(void* dest, size_t dest_bytes, const void* src, size_t src_bytes, bool truncate_oversize_result); std::string operator()(const void* src, size_t src_bytes); std::string operator()(const std::string& data); @@ -465,7 +465,7 @@ struct pstring { } for (size_t z = 0; z < Bytes; z += 2) { if (!this->data[z] && !this->data[z + 1]) { - return z; + return z >> 1; } } return Bytes >> 1;