Revert "Cleanup some numeric code."
[pdfium.git] / core / src / fpdfapi / fpdf_parser / fpdf_parser_decode.cpp
index cbbfbd7..255d0ce 100644 (file)
@@ -80,9 +80,9 @@ FX_DWORD _A85Decode(const uint8_t* src_buf,
   pos = dest_size = 0;
   while (pos < src_size) {
     uint8_t ch = src_buf[pos++];
-    if (ch == '\n' || ch == '\r' || ch == ' ' || ch == '\t') {
+    if (PDFCharIsLineEnding(ch) || ch == ' ' || ch == '\t')
       continue;
-    }
+
     if (ch == 'z') {
       FXSYS_memset(dest_buf + dest_size, 0, 4);
       state = 0;
@@ -131,9 +131,9 @@ FX_DWORD _HexDecode(const uint8_t* src_buf,
   FX_BOOL bFirstDigit = TRUE;
   for (i = 0; i < src_size; i++) {
     uint8_t ch = src_buf[i];
-    if (ch == ' ' || ch == '\n' || ch == '\t' || ch == '\r') {
+    if (PDFCharIsLineEnding(ch) || ch == ' ' || ch == '\t')
       continue;
-    }
+
     int digit;
     if (ch <= '9' && ch >= '0') {
       digit = ch - '0';
@@ -331,31 +331,27 @@ FX_BOOL PDF_DataDecode(const uint8_t* src_buf,
 
 {
   CPDF_Object* pDecoder =
-      pDict ? pDict->GetElementValue(FX_BSTRC("Filter")) : NULL;
-  if (!pDecoder || (pDecoder->GetType() != PDFOBJ_ARRAY && !pDecoder->IsName()))
+      pDict ? pDict->GetElementValue(FX_BSTRC("Filter")) : nullptr;
+  if (!pDecoder || (!pDecoder->IsArray() && !pDecoder->IsName()))
     return FALSE;
 
   CPDF_Object* pParams =
-      pDict ? pDict->GetElementValue(FX_BSTRC("DecodeParms")) : NULL;
+      pDict ? pDict->GetElementValue(FX_BSTRC("DecodeParms")) : nullptr;
   CFX_ByteStringArray DecoderList;
   CFX_PtrArray ParamList;
-  if (pDecoder->GetType() == PDFOBJ_ARRAY) {
-    if (pParams && pParams->GetType() != PDFOBJ_ARRAY) {
-      pParams = NULL;
-    }
-    CPDF_Array* pDecoders = (CPDF_Array*)pDecoder;
+  if (CPDF_Array* pDecoders = pDecoder->AsArray()) {
+    CPDF_Array* pParamsArray = ToArray(pParams);
+    if (!pParamsArray)
+      pParams = nullptr;
+
     for (FX_DWORD i = 0; i < pDecoders->GetCount(); i++) {
       CFX_ByteStringC str = pDecoders->GetConstString(i);
       DecoderList.Add(str);
-      if (pParams) {
-        ParamList.Add(((CPDF_Array*)pParams)->GetDict(i));
-      } else {
-        ParamList.Add(NULL);
-      }
+      ParamList.Add(pParams ? pParamsArray->GetDict(i) : nullptr);
     }
   } else {
     DecoderList.Add(pDecoder->GetConstString());
-    ParamList.Add(pParams ? pParams->GetDict() : NULL);
+    ParamList.Add(pParams ? pParams->GetDict() : nullptr);
   }
   uint8_t* last_buf = (uint8_t*)src_buf;
   FX_DWORD last_size = src_size;