Cleanup CJBig2_HuffmanTable and friends.

R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1536923002 .
diff --git a/core/src/fxcodec/jbig2/JBig2_Context.cpp b/core/src/fxcodec/jbig2/JBig2_Context.cpp
index 1cc8fbd..2a28185 100644
--- a/core/src/fxcodec/jbig2/JBig2_Context.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_Context.cpp
@@ -4,17 +4,21 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "JBig2_Context.h"
+#include "core/src/fxcodec/jbig2/JBig2_Context.h"
 
+#include <algorithm>
 #include <list>
+#include <vector>
 
-#include "JBig2_ArithDecoder.h"
-#include "JBig2_GrdProc.h"
-#include "JBig2_GrrdProc.h"
-#include "JBig2_HtrdProc.h"
-#include "JBig2_PddProc.h"
-#include "JBig2_SddProc.h"
-#include "JBig2_TrdProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_ArithDecoder.h"
+#include "core/src/fxcodec/jbig2/JBig2_BitStream.h"
+#include "core/src/fxcodec/jbig2/JBig2_GrdProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_GrrdProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_HtrdProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h"
+#include "core/src/fxcodec/jbig2/JBig2_PddProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_SddProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_TrdProc.h"
 
 namespace {
 
@@ -1262,12 +1266,13 @@
 
 int32_t CJBig2_Context::parseTable(CJBig2_Segment* pSegment) {
   pSegment->m_nResultType = JBIG2_HUFFMAN_TABLE_POINTER;
-  pSegment->m_Result.ht = new CJBig2_HuffmanTable(m_pStream.get());
-  if (!pSegment->m_Result.ht->isOK()) {
-    delete pSegment->m_Result.ht;
-    pSegment->m_Result.ht = NULL;
+  pSegment->m_Result.ht = nullptr;
+  nonstd::unique_ptr<CJBig2_HuffmanTable> pHuff(
+      new CJBig2_HuffmanTable(m_pStream.get()));
+  if (!pHuff->IsOK())
     return JBIG2_ERROR_FATAL;
-  }
+
+  pSegment->m_Result.ht = pHuff.release();
   m_pStream->alignByte();
   return JBIG2_SUCCESS;
 }
diff --git a/core/src/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp b/core/src/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp
index cbbe6af..4cbecd0 100644
--- a/core/src/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp
@@ -21,33 +21,26 @@
   while (1) {
     FX_DWORD nTmp;
     if (m_pStream->read1Bit(&nTmp) == -1)
-      return -1;
+      break;
 
     nVal = (nVal << 1) | nTmp;
     ++nBits;
-    for (FX_DWORD i = 0; i < pTable->NTEMP; ++i) {
-      if ((pTable->PREFLEN[i] == nBits) && (pTable->CODES[i] == nVal)) {
-        if ((pTable->HTOOB == 1) && (i == pTable->NTEMP - 1))
+    for (FX_DWORD i = 0; i < pTable->Size(); ++i) {
+      if (pTable->GetPREFLEN()[i] == nBits && pTable->GetCODES()[i] == nVal) {
+        if (pTable->IsHTOOB() && i == pTable->Size() - 1)
           return JBIG2_OOB;
 
-        if (m_pStream->readNBits(pTable->RANGELEN[i], &nTmp) == -1)
+        if (m_pStream->readNBits(pTable->GetRANGELEN()[i], &nTmp) == -1)
           return -1;
 
-        if (pTable->HTOOB) {
-          if (i == pTable->NTEMP - 3)
-            *nResult = pTable->RANGELOW[i] - nTmp;
-          else
-            *nResult = pTable->RANGELOW[i] + nTmp;
-          return 0;
-        }
-
-        if (i == pTable->NTEMP - 2)
-          *nResult = pTable->RANGELOW[i] - nTmp;
+        FX_DWORD offset = pTable->IsHTOOB() ? 3 : 2;
+        if (i == pTable->Size() - offset)
+          *nResult = pTable->GetRANGELOW()[i] - nTmp;
         else
-          *nResult = pTable->RANGELOW[i] + nTmp;
+          *nResult = pTable->GetRANGELOW()[i] + nTmp;
         return 0;
       }
     }
   }
-  return -2;
+  return -1;
 }
diff --git a/core/src/fxcodec/jbig2/JBig2_HuffmanTable.cpp b/core/src/fxcodec/jbig2/JBig2_HuffmanTable.cpp
index 8aaebf4..5833f11 100644
--- a/core/src/fxcodec/jbig2/JBig2_HuffmanTable.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_HuffmanTable.cpp
@@ -4,107 +4,56 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "JBig2_HuffmanTable.h"
+#include "core/src/fxcodec/jbig2/JBig2_HuffmanTable.h"
 
-#include <string.h>
-
+#include <algorithm>
 #include <vector>
 
-#include "JBig2_BitStream.h"
-#include "JBig2_Define.h"
 #include "core/include/fxcrt/fx_memory.h"
+#include "core/src/fxcodec/jbig2/JBig2_BitStream.h"
+#include "core/src/fxcodec/jbig2/JBig2_Define.h"
+#include "core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h"
 
 CJBig2_HuffmanTable::CJBig2_HuffmanTable(const JBig2TableLine* pTable,
-                                         int nLines,
-                                         FX_BOOL bHTOOB) {
-  init();
-  m_bOK = parseFromStandardTable(pTable, nLines, bHTOOB);
+                                         FX_DWORD nLines,
+                                         bool bHTOOB)
+    : m_bOK(true), HTOOB(bHTOOB), NTEMP(nLines) {
+  ParseFromStandardTable(pTable);
 }
 
-CJBig2_HuffmanTable::CJBig2_HuffmanTable(CJBig2_BitStream* pStream) {
-  init();
-  m_bOK = parseFromCodedBuffer(pStream);
+CJBig2_HuffmanTable::CJBig2_HuffmanTable(CJBig2_BitStream* pStream)
+    : HTOOB(false), NTEMP(0) {
+  m_bOK = ParseFromCodedBuffer(pStream);
 }
 
 CJBig2_HuffmanTable::~CJBig2_HuffmanTable() {
-  FX_Free(CODES);
-  FX_Free(PREFLEN);
-  FX_Free(RANGELEN);
-  FX_Free(RANGELOW);
 }
-void CJBig2_HuffmanTable::init() {
-  HTOOB = FALSE;
-  NTEMP = 0;
-  CODES = nullptr;
-  PREFLEN = nullptr;
-  RANGELEN = nullptr;
-  RANGELOW = nullptr;
-}
-int CJBig2_HuffmanTable::parseFromStandardTable(const JBig2TableLine* pTable,
-                                                int nLines,
-                                                FX_BOOL bHTOOB) {
-  HTOOB = bHTOOB;
-  NTEMP = nLines;
-  CODES = FX_Alloc(int, NTEMP);
-  PREFLEN = FX_Alloc(int, NTEMP);
-  RANGELEN = FX_Alloc(int, NTEMP);
-  RANGELOW = FX_Alloc(int, NTEMP);
-  int LENMAX = 0;
+
+void CJBig2_HuffmanTable::ParseFromStandardTable(const JBig2TableLine* pTable) {
+  PREFLEN.resize(NTEMP);
+  RANGELEN.resize(NTEMP);
+  RANGELOW.resize(NTEMP);
   for (FX_DWORD i = 0; i < NTEMP; ++i) {
     PREFLEN[i] = pTable[i].PREFLEN;
     RANGELEN[i] = pTable[i].RANDELEN;
     RANGELOW[i] = pTable[i].RANGELOW;
-    if (PREFLEN[i] > LENMAX) {
-      LENMAX = PREFLEN[i];
-    }
   }
-  int* LENCOUNT = FX_Alloc(int, LENMAX + 1);
-  JBIG2_memset(LENCOUNT, 0, sizeof(int) * (LENMAX + 1));
-  int* FIRSTCODE = FX_Alloc(int, LENMAX + 1);
-  for (FX_DWORD i = 0; i < NTEMP; ++i)
-    ++LENCOUNT[PREFLEN[i]];
-
-  int CURLEN = 1;
-  FIRSTCODE[0] = 0;
-  LENCOUNT[0] = 0;
-  while (CURLEN <= LENMAX) {
-    FIRSTCODE[CURLEN] = (FIRSTCODE[CURLEN - 1] + LENCOUNT[CURLEN - 1]) << 1;
-    int CURCODE = FIRSTCODE[CURLEN];
-    FX_DWORD CURTEMP = 0;
-    while (CURTEMP < NTEMP) {
-      if (PREFLEN[CURTEMP] == CURLEN) {
-        CODES[CURTEMP] = CURCODE;
-        CURCODE = CURCODE + 1;
-      }
-      CURTEMP = CURTEMP + 1;
-    }
-    CURLEN = CURLEN + 1;
-  }
-  FX_Free(LENCOUNT);
-  FX_Free(FIRSTCODE);
-  return 1;
+  InitCodes();
 }
 
-#define HT_CHECK_MEMORY_ADJUST                   \
-  if (NTEMP >= nSize) {                          \
-    nSize += 16;                                 \
-    PREFLEN = FX_Realloc(int, PREFLEN, nSize);   \
-    RANGELEN = FX_Realloc(int, RANGELEN, nSize); \
-    RANGELOW = FX_Realloc(int, RANGELOW, nSize); \
-  }
-int CJBig2_HuffmanTable::parseFromCodedBuffer(CJBig2_BitStream* pStream) {
+bool CJBig2_HuffmanTable::ParseFromCodedBuffer(CJBig2_BitStream* pStream) {
   unsigned char cTemp;
   if (pStream->read1Byte(&cTemp) == -1)
-    return FALSE;
+    return false;
 
-  HTOOB = cTemp & 0x01;
+  HTOOB = !!(cTemp & 0x01);
   unsigned char HTPS = ((cTemp >> 1) & 0x07) + 1;
   unsigned char HTRS = ((cTemp >> 4) & 0x07) + 1;
   FX_DWORD HTLOW;
   FX_DWORD HTHIGH;
   if (pStream->readInteger(&HTLOW) == -1 ||
       pStream->readInteger(&HTHIGH) == -1) {
-    return FALSE;
+    return false;
   }
 
   const int low = static_cast<int>(HTLOW);
@@ -112,56 +61,57 @@
   if (low > high)
     return false;
 
-  FX_DWORD nSize = 16;
-  PREFLEN = FX_Alloc(int, nSize);
-  RANGELEN = FX_Alloc(int, nSize);
-  RANGELOW = FX_Alloc(int, nSize);
+  ExtendBuffers(false);
   int cur_low = low;
-  NTEMP = 0;
   do {
-    HT_CHECK_MEMORY_ADJUST
     if ((pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1) ||
         (pStream->readNBits(HTRS, &RANGELEN[NTEMP]) == -1)) {
-      return FALSE;
+      return false;
     }
     RANGELOW[NTEMP] = cur_low;
     cur_low += (1 << RANGELEN[NTEMP]);
-    NTEMP = NTEMP + 1;
+    ExtendBuffers(true);
   } while (cur_low < high);
-  HT_CHECK_MEMORY_ADJUST
+
   if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1)
-    return FALSE;
+    return false;
 
   RANGELEN[NTEMP] = 32;
   RANGELOW[NTEMP] = low - 1;
-  ++NTEMP;
-  HT_CHECK_MEMORY_ADJUST
+  ExtendBuffers(true);
+
   if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1)
-    return FALSE;
+    return false;
 
   RANGELEN[NTEMP] = 32;
   RANGELOW[NTEMP] = high;
-  NTEMP = NTEMP + 1;
+  ExtendBuffers(true);
+
   if (HTOOB) {
-    HT_CHECK_MEMORY_ADJUST
     if (pStream->readNBits(HTPS, &PREFLEN[NTEMP]) == -1)
-      return FALSE;
+      return false;
 
     ++NTEMP;
   }
-  CODES = FX_Alloc(int, NTEMP);
-  int LENMAX = 0;
-  for (FX_DWORD i = 0; i < NTEMP; ++i)
-    LENMAX = std::max(PREFLEN[i], LENMAX);
 
-  std::vector<int> LENCOUNT(LENMAX + 1);
-  for (FX_DWORD i = 0; i < NTEMP; ++i)
-    LENCOUNT[PREFLEN[i]]++;
-  LENCOUNT[0] = 0;
+  InitCodes();
+  return true;
+}
 
-  std::vector<int> FIRSTCODE(LENMAX + 1);
+void CJBig2_HuffmanTable::InitCodes() {
+  int lenmax = 0;
+  for (FX_DWORD i = 0; i < NTEMP; ++i)
+    lenmax = std::max(PREFLEN[i], lenmax);
+
+  CODES.resize(NTEMP);
+  std::vector<int> LENCOUNT(lenmax + 1);
+  std::vector<int> FIRSTCODE(lenmax + 1);
+  for (int len : PREFLEN)
+    ++LENCOUNT[len];
+
   FIRSTCODE[0] = 0;
-  for (int i = 1; i <= LENMAX; ++i) {
+  LENCOUNT[0] = 0;
+  for (int i = 1; i <= lenmax; ++i) {
     FIRSTCODE[i] = (FIRSTCODE[i - 1] + LENCOUNT[i - 1]) << 1;
     int CURCODE = FIRSTCODE[i];
     for (FX_DWORD j = 0; j < NTEMP; ++j) {
@@ -169,5 +119,19 @@
         CODES[j] = CURCODE++;
     }
   }
-  return TRUE;
+}
+
+void CJBig2_HuffmanTable::ExtendBuffers(bool increment) {
+  if (increment)
+    ++NTEMP;
+
+  size_t size = PREFLEN.size();
+  if (NTEMP < size)
+    return;
+
+  size += 16;
+  ASSERT(NTEMP < size);
+  PREFLEN.resize(size);
+  RANGELEN.resize(size);
+  RANGELOW.resize(size);
 }
diff --git a/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h b/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h
index fe8294d..568c497 100644
--- a/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h
+++ b/core/src/fxcodec/jbig2/JBig2_HuffmanTable.h
@@ -4,38 +4,47 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef _JBIG2_HUFFMAN_TABLE_H_
-#define _JBIG2_HUFFMAN_TABLE_H_
+#ifndef CORE_SRC_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_H_
+#define CORE_SRC_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_H_
 
-#include "JBig2_HuffmanTable_Standard.h"
-#include "JBig2_BitStream.h"
+#include <vector>
+
+#include "core/include/fxcrt/fx_system.h"
+
+class CJBig2_BitStream;
+struct JBig2TableLine;
 
 class CJBig2_HuffmanTable {
  public:
-  CJBig2_HuffmanTable(const JBig2TableLine* pTable, int nLines, FX_BOOL bHTOOB);
+  CJBig2_HuffmanTable(const JBig2TableLine* pTable,
+                      FX_DWORD nLines,
+                      bool bHTOOB);
 
   explicit CJBig2_HuffmanTable(CJBig2_BitStream* pStream);
 
   ~CJBig2_HuffmanTable();
 
-  int parseFromStandardTable(const JBig2TableLine* pTable,
-                             int nLines,
-                             FX_BOOL bHTOOB);
-
-  int parseFromCodedBuffer(CJBig2_BitStream* pStream);
-
-  FX_BOOL isOK() const { return m_bOK; }
+  bool IsHTOOB() const { return HTOOB; }
+  FX_DWORD Size() const { return NTEMP; }
+  const std::vector<int>& GetCODES() const { return CODES; }
+  const std::vector<int>& GetPREFLEN() const { return PREFLEN; }
+  const std::vector<int>& GetRANGELEN() const { return RANGELEN; }
+  const std::vector<int>& GetRANGELOW() const { return RANGELOW; }
+  bool IsOK() const { return m_bOK; }
 
  private:
-  void init();
+  void ParseFromStandardTable(const JBig2TableLine* pTable);
+  bool ParseFromCodedBuffer(CJBig2_BitStream* pStream);
+  void InitCodes();
+  void ExtendBuffers(bool increment);
 
-  FX_BOOL HTOOB;
+  bool m_bOK;
+  bool HTOOB;
   FX_DWORD NTEMP;
-  int* CODES;
-  int* PREFLEN;
-  int* RANGELEN;
-  int* RANGELOW;
-  FX_BOOL m_bOK;
-  friend class CJBig2_HuffmanDecoder;
+  std::vector<int> CODES;
+  std::vector<int> PREFLEN;
+  std::vector<int> RANGELEN;
+  std::vector<int> RANGELOW;
 };
-#endif
+
+#endif  // CORE_SRC_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_H_
diff --git a/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h b/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h
index e4c3265..a2ce232 100644
--- a/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h
+++ b/core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef _JBIG2_HUFFMAN_TABLE_STANDARD_H_
-#define _JBIG2_HUFFMAN_TABLE_STANDARD_H_
+#ifndef CORE_SRC_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_STANDARD_H_
+#define CORE_SRC_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_STANDARD_H_
 
 #include "core/include/fxcrt/fx_system.h"
 
@@ -15,83 +15,84 @@
   int RANGELOW;
 };
 
-const FX_BOOL HuffmanTable_HTOOB_B1 = FALSE;
+const bool HuffmanTable_HTOOB_B1 = false;
 const JBig2TableLine HuffmanTable_B1[] = {{1, 4, 0},
                                           {2, 8, 16},
                                           {3, 16, 272},
                                           {0, 32, -1},
                                           {3, 32, 65808}};
-const FX_BOOL HuffmanTable_HTOOB_B2 = TRUE;
+const bool HuffmanTable_HTOOB_B2 = true;
 const JBig2TableLine HuffmanTable_B2[] = {{1, 0, 0},   {2, 0, 1},  {3, 0, 2},
                                           {4, 3, 3},   {5, 6, 11}, {0, 32, -1},
                                           {6, 32, 75}, {6, 0, 0}};
-const FX_BOOL HuffmanTable_HTOOB_B3 = TRUE;
+const bool HuffmanTable_HTOOB_B3 = true;
 const JBig2TableLine HuffmanTable_B3[] = {
     {8, 8, -256}, {1, 0, 0},     {2, 0, 1},   {3, 0, 2}, {4, 3, 3},
     {5, 6, 11},   {8, 32, -257}, {7, 32, 75}, {6, 0, 0}};
-const FX_BOOL HuffmanTable_HTOOB_B4 = FALSE;
+const bool HuffmanTable_HTOOB_B4 = false;
 const JBig2TableLine HuffmanTable_B4[] = {
     {1, 0, 1},  {2, 0, 2},   {3, 0, 3},   {4, 3, 4},
     {5, 6, 12}, {0, 32, -1}, {5, 32, 76},
 };
-const FX_BOOL HuffmanTable_HTOOB_B5 = FALSE;
+const bool HuffmanTable_HTOOB_B5 = false;
 const JBig2TableLine HuffmanTable_B5[] = {{7, 8, -255},  {1, 0, 1},  {2, 0, 2},
                                           {3, 0, 3},     {4, 3, 4},  {5, 6, 12},
                                           {7, 32, -256}, {6, 32, 76}};
-const FX_BOOL HuffmanTable_HTOOB_B6 = FALSE;
+const bool HuffmanTable_HTOOB_B6 = false;
 const JBig2TableLine HuffmanTable_B6[] = {
     {5, 10, -2048}, {4, 9, -1024}, {4, 8, -512},   {4, 7, -256}, {5, 6, -128},
     {5, 5, -64},    {4, 5, -32},   {2, 7, 0},      {3, 7, 128},  {3, 8, 256},
     {4, 9, 512},    {4, 10, 1024}, {6, 32, -2049}, {6, 32, 2048}};
-const FX_BOOL HuffmanTable_HTOOB_B7 = FALSE;
+const bool HuffmanTable_HTOOB_B7 = false;
 const JBig2TableLine HuffmanTable_B7[] = {
     {4, 9, -1024}, {3, 8, -512}, {4, 7, -256},  {5, 6, -128},   {5, 5, -64},
     {4, 5, -32},   {4, 5, 0},    {5, 5, 32},    {5, 6, 64},     {4, 7, 128},
     {3, 8, 256},   {3, 9, 512},  {3, 10, 1024}, {5, 32, -1025}, {5, 32, 2048},
 };
-const FX_BOOL HuffmanTable_HTOOB_B8 = TRUE;
+const bool HuffmanTable_HTOOB_B8 = true;
 const JBig2TableLine HuffmanTable_B8[] = {
     {8, 3, -15}, {9, 1, -7},  {8, 1, -5},   {9, 0, -3},   {7, 0, -2},
     {4, 0, -1},  {2, 1, 0},   {5, 0, 2},    {6, 0, 3},    {3, 4, 4},
     {6, 1, 20},  {4, 4, 22},  {4, 5, 38},   {5, 6, 70},   {5, 7, 134},
     {6, 7, 262}, {7, 8, 390}, {6, 10, 646}, {9, 32, -16}, {9, 32, 1670},
     {2, 0, 0}};
-const FX_BOOL HuffmanTable_HTOOB_B9 = TRUE;
+const bool HuffmanTable_HTOOB_B9 = true;
 const JBig2TableLine HuffmanTable_B9[] = {
     {8, 4, -31},   {9, 2, -15}, {8, 2, -11}, {9, 1, -7},    {7, 1, -5},
     {4, 1, -3},    {3, 1, -1},  {3, 1, 1},   {5, 1, 3},     {6, 1, 5},
     {3, 5, 7},     {6, 2, 39},  {4, 5, 43},  {4, 6, 75},    {5, 7, 139},
     {5, 8, 267},   {6, 8, 523}, {7, 9, 779}, {6, 11, 1291}, {9, 32, -32},
     {9, 32, 3339}, {2, 0, 0}};
-const FX_BOOL HuffmanTable_HTOOB_B10 = TRUE;
+const bool HuffmanTable_HTOOB_B10 = true;
 const JBig2TableLine HuffmanTable_B10[] = {
     {7, 4, -21}, {8, 0, -5},    {7, 0, -4},    {5, 0, -3},   {2, 2, -2},
     {5, 0, 2},   {6, 0, 3},     {7, 0, 4},     {8, 0, 5},    {2, 6, 6},
     {5, 5, 70},  {6, 5, 102},   {6, 6, 134},   {6, 7, 198},  {6, 8, 326},
     {6, 9, 582}, {6, 10, 1094}, {7, 11, 2118}, {8, 32, -22}, {8, 32, 4166},
     {2, 0, 0}};
-const FX_BOOL HuffmanTable_HTOOB_B11 = FALSE;
+const bool HuffmanTable_HTOOB_B11 = false;
 const JBig2TableLine HuffmanTable_B11[] = {
     {1, 0, 1},  {2, 1, 2},  {4, 0, 4},  {4, 1, 5},   {5, 1, 7},
     {5, 2, 9},  {6, 2, 13}, {7, 2, 17}, {7, 3, 21},  {7, 4, 29},
     {7, 5, 45}, {7, 6, 77}, {0, 32, 0}, {7, 32, 141}};
-const FX_BOOL HuffmanTable_HTOOB_B12 = FALSE;
+const bool HuffmanTable_HTOOB_B12 = false;
 const JBig2TableLine HuffmanTable_B12[] = {
     {1, 0, 1},  {2, 0, 2},  {3, 1, 3},  {5, 0, 5},  {5, 1, 6},
     {6, 1, 8},  {7, 0, 10}, {7, 1, 11}, {7, 2, 13}, {7, 3, 17},
     {7, 4, 25}, {8, 5, 41}, {0, 32, 0}, {8, 32, 73}};
-const FX_BOOL HuffmanTable_HTOOB_B13 = FALSE;
+const bool HuffmanTable_HTOOB_B13 = false;
 const JBig2TableLine HuffmanTable_B13[] = {
     {1, 0, 1},  {3, 0, 2},  {4, 0, 3},  {5, 0, 4},   {4, 1, 5},
     {3, 3, 7},  {6, 1, 15}, {6, 2, 17}, {6, 3, 21},  {6, 4, 29},
     {6, 5, 45}, {7, 6, 77}, {0, 32, 0}, {7, 32, 141}};
-const FX_BOOL HuffmanTable_HTOOB_B14 = FALSE;
+const bool HuffmanTable_HTOOB_B14 = false;
 const JBig2TableLine HuffmanTable_B14[] = {{3, 0, -2}, {3, 0, -1}, {1, 0, 0},
                                            {3, 0, 1},  {3, 0, 2},  {0, 32, -3},
                                            {0, 32, 3}};
-const FX_BOOL HuffmanTable_HTOOB_B15 = FALSE;
+const bool HuffmanTable_HTOOB_B15 = false;
 const JBig2TableLine HuffmanTable_B15[] = {
     {7, 4, -24}, {6, 2, -8},   {5, 1, -4}, {4, 0, -2}, {3, 0, -1},
     {1, 0, 0},   {3, 0, 1},    {4, 0, 2},  {5, 1, 3},  {6, 2, 5},
     {7, 4, 9},   {7, 32, -25}, {7, 32, 25}};
-#endif
+
+#endif  // CORE_SRC_FXCODEC_JBIG2_JBIG2_HUFFMANTABLE_STANDARD_H_
diff --git a/core/src/fxcodec/jbig2/JBig2_SddProc.cpp b/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
index edfc074..06d6520 100644
--- a/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
+++ b/core/src/fxcodec/jbig2/JBig2_SddProc.cpp
@@ -4,16 +4,19 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "JBig2_SddProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_SddProc.h"
 
-#include "JBig2_ArithIntDecoder.h"
-#include "JBig2_GrdProc.h"
-#include "JBig2_GrrdProc.h"
-#include "JBig2_HuffmanDecoder.h"
-#include "JBig2_HuffmanTable.h"
-#include "JBig2_SymbolDict.h"
-#include "JBig2_TrdProc.h"
+#include <vector>
+
 #include "core/include/fxcrt/fx_basic.h"
+#include "core/src/fxcodec/jbig2/JBig2_ArithIntDecoder.h"
+#include "core/src/fxcodec/jbig2/JBig2_GrdProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_GrrdProc.h"
+#include "core/src/fxcodec/jbig2/JBig2_HuffmanDecoder.h"
+#include "core/src/fxcodec/jbig2/JBig2_HuffmanTable.h"
+#include "core/src/fxcodec/jbig2/JBig2_HuffmanTable_Standard.h"
+#include "core/src/fxcodec/jbig2/JBig2_SymbolDict.h"
+#include "core/src/fxcodec/jbig2/JBig2_TrdProc.h"
 #include "third_party/base/nonstd_unique_ptr.h"
 #include "third_party/base/stl_util.h"