summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fxbarcode/datamatrix/BC_Base256Encoder.cpp1
-rw-r--r--fxbarcode/datamatrix/BC_EncoderContext.cpp3
2 files changed, 3 insertions, 1 deletions
diff --git a/fxbarcode/datamatrix/BC_Base256Encoder.cpp b/fxbarcode/datamatrix/BC_Base256Encoder.cpp
index b7dd69c0f7..1010cfe32c 100644
--- a/fxbarcode/datamatrix/BC_Base256Encoder.cpp
+++ b/fxbarcode/datamatrix/BC_Base256Encoder.cpp
@@ -35,6 +35,7 @@ int32_t CBC_Base256Encoder::getEncodingMode() {
}
void CBC_Base256Encoder::Encode(CBC_EncoderContext& context, int32_t& e) {
WideString buffer;
+ buffer.Reserve(context.getRemainingCharacters() + 1);
buffer += L'\0';
while (context.hasMoreCharacters()) {
wchar_t c = context.getCurrentChar();
diff --git a/fxbarcode/datamatrix/BC_EncoderContext.cpp b/fxbarcode/datamatrix/BC_EncoderContext.cpp
index fe0a497d58..d9823bffe2 100644
--- a/fxbarcode/datamatrix/BC_EncoderContext.cpp
+++ b/fxbarcode/datamatrix/BC_EncoderContext.cpp
@@ -33,8 +33,9 @@ CBC_EncoderContext::CBC_EncoderContext(const WideString& msg,
int32_t& e) {
ByteString dststr;
CBC_UtilCodingConvert::UnicodeToUTF8(msg, dststr);
- WideString sb;
size_t c = dststr.GetLength();
+ WideString sb;
+ sb.Reserve(c);
for (size_t i = 0; i < c; i++) {
wchar_t ch = static_cast<wchar_t>(dststr[i] & 0xff);
if (ch == '?' && dststr[i] != '?') {