summaryrefslogtreecommitdiff
path: root/fxbarcode/datamatrix/BC_C40Encoder.cpp
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2017-04-28 15:50:15 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-04-28 23:20:55 +0000
commit75b656a185ded6423b170546b89a945ac7aed74d (patch)
tree4d3d4a1f2a0e27ae6cda602984831de37cacd188 /fxbarcode/datamatrix/BC_C40Encoder.cpp
parent4536a47bc4581a5344fba9c5491464bf9b7261c9 (diff)
downloadpdfium-75b656a185ded6423b170546b89a945ac7aed74d.tar.xz
Clean up private methods in CBC_C40Encoder.
Change-Id: I0c33ec81ef9fd3ff7c22f33f5647a923aecd3e77 Reviewed-on: https://pdfium-review.googlesource.com/4594 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'fxbarcode/datamatrix/BC_C40Encoder.cpp')
-rw-r--r--fxbarcode/datamatrix/BC_C40Encoder.cpp40
1 files changed, 21 insertions, 19 deletions
diff --git a/fxbarcode/datamatrix/BC_C40Encoder.cpp b/fxbarcode/datamatrix/BC_C40Encoder.cpp
index e8aa679e28..8d352b1a98 100644
--- a/fxbarcode/datamatrix/BC_C40Encoder.cpp
+++ b/fxbarcode/datamatrix/BC_C40Encoder.cpp
@@ -67,21 +67,20 @@ void CBC_C40Encoder::Encode(CBC_EncoderContext& context, int32_t& e) {
}
int32_t available = context.m_symbolInfo->m_dataCapacity - curCodewordCount;
if (!context.hasMoreCharacters()) {
- CFX_WideString removed;
if ((buffer.GetLength() % 3) == 2) {
if (available < 2 || available > 2) {
- lastCharSize =
- backtrackOneCharacter(context, buffer, removed, lastCharSize, e);
- if (e != BCExceptionNO) {
+ lastCharSize = BacktrackOneCharacter(&context, &buffer, lastCharSize);
+ if (lastCharSize < 0) {
+ e = BCExceptionGeneric;
return;
}
}
}
while ((buffer.GetLength() % 3) == 1 &&
((lastCharSize <= 3 && available != 1) || lastCharSize > 3)) {
- lastCharSize =
- backtrackOneCharacter(context, buffer, removed, lastCharSize, e);
- if (e != BCExceptionNO) {
+ lastCharSize = BacktrackOneCharacter(&context, &buffer, lastCharSize);
+ if (lastCharSize < 0) {
+ e = BCExceptionGeneric;
return;
}
}
@@ -187,18 +186,21 @@ int32_t CBC_C40Encoder::encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e) {
return 0;
}
}
-int32_t CBC_C40Encoder::backtrackOneCharacter(CBC_EncoderContext& context,
- CFX_WideString& buffer,
- CFX_WideString& removed,
- int32_t lastCharSize,
- int32_t& e) {
- int32_t count = buffer.GetLength();
- buffer.Delete(count - lastCharSize, count);
- context.m_pos--;
- wchar_t c = context.getCurrentChar();
- lastCharSize = encodeChar(c, removed, e);
+
+int32_t CBC_C40Encoder::BacktrackOneCharacter(CBC_EncoderContext* context,
+ CFX_WideString* buffer,
+ int32_t lastCharSize) {
+ int32_t count = buffer->GetLength();
+ buffer->Delete(count - lastCharSize, count);
+ context->m_pos--;
+ wchar_t c = context->getCurrentChar();
+ int32_t e = BCExceptionNO;
+ CFX_WideString removed;
+ int32_t len = encodeChar(c, removed, e);
if (e != BCExceptionNO)
return -1;
- context.resetSymbolInfo();
- return lastCharSize;
+
+ assert(len > 0);
+ context->resetSymbolInfo();
+ return len;
}