Tidy static/global usage in BC_ReedSolomonGF256.cpp

- Move some trivial getters to .h file.
- Remove one unused constant.
- Move the other constant into the only file that uses it.
- Prefix with g_ so that it is clear that the eventual |delete|
  is operating on a global and can't be a smart pointer instead.

Change-Id: Ice83dea14c84a5c72ccbc8d0f7e97a2e1b5719a0
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/54591
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxbarcode/BC_Library.cpp b/fxbarcode/BC_Library.cpp
index 80de23c..393f329 100644
--- a/fxbarcode/BC_Library.cpp
+++ b/fxbarcode/BC_Library.cpp
@@ -8,8 +8,8 @@
 
 #include <stdint.h>
 
-#include "fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h"
 #include "fxbarcode/datamatrix/BC_SymbolInfo.h"
+#include "fxbarcode/qrcode/BC_QRCoderEncoder.h"
 #include "fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h"
 #include "fxbarcode/qrcode/BC_QRCoderMode.h"
 #include "fxbarcode/qrcode/BC_QRCoderVersion.h"
@@ -18,7 +18,7 @@
   CBC_QRCoderErrorCorrectionLevel::Initialize();
   CBC_QRCoderMode::Initialize();
   CBC_QRCoderVersion::Initialize();
-  CBC_ReedSolomonGF256::Initialize();
+  CBC_QRCoderEncoder::Initialize();
   CBC_SymbolInfo::Initialize();
 }
 
@@ -26,6 +26,6 @@
   CBC_QRCoderErrorCorrectionLevel::Finalize();
   CBC_QRCoderMode::Finalize();
   CBC_QRCoderVersion::Finalize();
-  CBC_ReedSolomonGF256::Finalize();
+  CBC_QRCoderEncoder::Finalize();
   CBC_SymbolInfo::Finalize();
 }
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp
index b0dd0a2..f2d86b3 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp
@@ -27,23 +27,6 @@
 #include "fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h"
 #include "third_party/base/ptr_util.h"
 
-CBC_ReedSolomonGF256* CBC_ReedSolomonGF256::QRCodeField = nullptr;
-CBC_ReedSolomonGF256* CBC_ReedSolomonGF256::DataMatrixField = nullptr;
-
-void CBC_ReedSolomonGF256::Initialize() {
-  QRCodeField = new CBC_ReedSolomonGF256(0x011D);
-  QRCodeField->Init();
-  DataMatrixField = new CBC_ReedSolomonGF256(0x012D);
-  DataMatrixField->Init();
-}
-
-void CBC_ReedSolomonGF256::Finalize() {
-  delete QRCodeField;
-  QRCodeField = nullptr;
-  delete DataMatrixField;
-  DataMatrixField = nullptr;
-}
-
 CBC_ReedSolomonGF256::CBC_ReedSolomonGF256(int32_t primitive) {
   int32_t x = 1;
   for (int32_t j = 0; j < 256; j++) {
@@ -68,14 +51,6 @@
 
 CBC_ReedSolomonGF256::~CBC_ReedSolomonGF256() {}
 
-CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::GetZero() const {
-  return m_zero.get();
-}
-
-CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::GetOne() const {
-  return m_one.get();
-}
-
 std::unique_ptr<CBC_ReedSolomonGF256Poly> CBC_ReedSolomonGF256::BuildMonomial(
     int32_t degree,
     int32_t coefficient) {
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h
index a9cf7ef..30f5524 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h
@@ -18,11 +18,9 @@
   explicit CBC_ReedSolomonGF256(int32_t primitive);
   ~CBC_ReedSolomonGF256();
 
-  static void Initialize();
-  static void Finalize();
+  CBC_ReedSolomonGF256Poly* GetZero() const { return m_zero.get(); }
+  CBC_ReedSolomonGF256Poly* GetOne() const { return m_one.get(); }
 
-  CBC_ReedSolomonGF256Poly* GetZero() const;
-  CBC_ReedSolomonGF256Poly* GetOne() const;
   std::unique_ptr<CBC_ReedSolomonGF256Poly> BuildMonomial(int32_t degree,
                                                           int32_t coefficient);
   static int32_t AddOrSubtract(int32_t a, int32_t b);
@@ -31,9 +29,6 @@
   int32_t Multiply(int32_t a, int32_t b);
   void Init();
 
-  static CBC_ReedSolomonGF256* QRCodeField;
-  static CBC_ReedSolomonGF256* DataMatrixField;
-
  private:
   std::unique_ptr<CBC_ReedSolomonGF256Poly> m_zero;
   std::unique_ptr<CBC_ReedSolomonGF256Poly> m_one;
diff --git a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
index 02f42bf..2ecd3b8 100644
--- a/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderEncoder.cpp
@@ -44,6 +44,8 @@
 
 namespace {
 
+CBC_ReedSolomonGF256* g_QRCodeField = nullptr;
+
 struct QRCoderBlockPair {
   std::vector<uint8_t> data;
   std::vector<uint8_t> ecc;
@@ -230,7 +232,7 @@
   std::copy(dataBytes.begin(), dataBytes.end(), toEncode.begin());
 
   std::vector<uint8_t> ecBytes;
-  CBC_ReedSolomonEncoder encoder(CBC_ReedSolomonGF256::QRCodeField);
+  CBC_ReedSolomonEncoder encoder(g_QRCodeField);
   if (encoder.Encode(&toEncode, numEcBytesInBlock)) {
     ecBytes = std::vector<uint8_t>(toEncode.begin() + dataBytes.size(),
                                    toEncode.end());
@@ -400,6 +402,18 @@
 }  // namespace
 
 // static
+void CBC_QRCoderEncoder::Initialize() {
+  g_QRCodeField = new CBC_ReedSolomonGF256(0x011D);
+  g_QRCodeField->Init();
+}
+
+// static
+void CBC_QRCoderEncoder::Finalize() {
+  delete g_QRCodeField;
+  g_QRCodeField = nullptr;
+}
+
+// static
 bool CBC_QRCoderEncoder::Encode(WideStringView content,
                                 const CBC_QRCoderErrorCorrectionLevel* ecLevel,
                                 CBC_QRCoder* qrCode) {
diff --git a/fxbarcode/qrcode/BC_QRCoderEncoder.h b/fxbarcode/qrcode/BC_QRCoderEncoder.h
index 75fd2e5..a3af1fc 100644
--- a/fxbarcode/qrcode/BC_QRCoderEncoder.h
+++ b/fxbarcode/qrcode/BC_QRCoderEncoder.h
@@ -17,6 +17,8 @@
   CBC_QRCoderEncoder() = delete;
   ~CBC_QRCoderEncoder() = delete;
 
+  static void Initialize();
+  static void Finalize();
   static bool Encode(WideStringView content,
                      const CBC_QRCoderErrorCorrectionLevel* ecLevel,
                      CBC_QRCoder* qrCode);