Reflow CLZWDecoder::Decode().
Change a long if, else if, else block into a bunch of if statements.
Change-Id: I09bfc665a59b0faff3ae1e6cfa2a7e00ea56907d
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/56230
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcodec/codec/flatemodule.cpp b/core/fxcodec/codec/flatemodule.cpp
index b69eaa1..0ac9dd1 100644
--- a/core/fxcodec/codec/flatemodule.cpp
+++ b/core/fxcodec/codec/flatemodule.cpp
@@ -178,9 +178,9 @@
uint32_t old_code = 0xFFFFFFFF;
uint8_t last_char = 0;
while (1) {
- if (m_InPos + m_CodeLen > *src_size * 8) {
+ if (m_InPos + m_CodeLen > *src_size * 8)
break;
- }
+
int byte_pos = m_InPos / 8;
int bit_pos = m_InPos % 8, bit_left = m_CodeLen;
uint32_t code = 0;
@@ -198,8 +198,7 @@
}
}
m_InPos += m_CodeLen;
- if (code == 257)
- break;
+
if (code < 256) {
if (m_OutPos == *dest_size) {
return -5;
@@ -212,45 +211,45 @@
if (old_code != 0xFFFFFFFF)
AddCode(old_code, last_char);
old_code = code;
- } else if (code == 256) {
+ continue;
+ }
+ if (code == 256) {
m_CodeLen = 9;
m_nCodes = 0;
old_code = 0xFFFFFFFF;
- } else {
- // Else 257 or greater.
- if (old_code == 0xFFFFFFFF)
- return 2;
-
- m_StackLen = 0;
- if (code >= m_nCodes + 258) {
- if (m_StackLen < sizeof(m_DecodeStack)) {
- m_DecodeStack[m_StackLen++] = last_char;
- }
- DecodeString(old_code);
- } else {
- DecodeString(code);
- }
- if (m_OutPos + m_StackLen > *dest_size) {
- return -5;
- }
- if (m_pOutput) {
- for (uint32_t i = 0; i < m_StackLen; i++) {
- m_pOutput[m_OutPos + i] = m_DecodeStack[m_StackLen - i - 1];
- }
- }
- m_OutPos += m_StackLen;
- last_char = m_DecodeStack[m_StackLen - 1];
- if (old_code < 256) {
- AddCode(old_code, last_char);
- } else if (old_code - 258 >= m_nCodes) {
- *dest_size = m_OutPos;
- *src_size = (m_InPos + 7) / 8;
- return 0;
- } else {
- AddCode(old_code, last_char);
- }
- old_code = code;
+ continue;
}
+ if (code == 257)
+ break;
+
+ // Case where |code| is 258 or greater.
+ if (old_code == 0xFFFFFFFF)
+ return 2;
+
+ m_StackLen = 0;
+ if (code - 258 >= m_nCodes) {
+ if (m_StackLen < sizeof(m_DecodeStack)) {
+ m_DecodeStack[m_StackLen++] = last_char;
+ }
+ DecodeString(old_code);
+ } else {
+ DecodeString(code);
+ }
+ if (m_OutPos + m_StackLen > *dest_size)
+ return -5;
+
+ if (m_pOutput) {
+ for (uint32_t i = 0; i < m_StackLen; i++)
+ m_pOutput[m_OutPos + i] = m_DecodeStack[m_StackLen - i - 1];
+ }
+ m_OutPos += m_StackLen;
+ last_char = m_DecodeStack[m_StackLen - 1];
+ // TODO(thestig): What happens if |old_code| is 257?
+ if (old_code >= 256 && old_code - 258 >= m_nCodes)
+ break;
+
+ AddCode(old_code, last_char);
+ old_code = code;
}
*dest_size = m_OutPos;
*src_size = (m_InPos + 7) / 8;