Index: xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp |
diff --git a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp |
index da0ad3ff054a0063c799aca1f30a2ef8ec838565..c9425dfa1958df4871a1ed1768a47624bc609da2 100644 |
--- a/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp |
+++ b/xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp |
@@ -23,18 +23,19 @@ |
#include "xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.h" |
#include "xfa/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h" |
-CBC_ReedSolomonGF256* CBC_ReedSolomonGF256::QRCodeFild = nullptr; |
+CBC_ReedSolomonGF256* CBC_ReedSolomonGF256::QRCodeField = nullptr; |
CBC_ReedSolomonGF256* CBC_ReedSolomonGF256::DataMatrixField = nullptr; |
+ |
void CBC_ReedSolomonGF256::Initialize() { |
- QRCodeFild = new CBC_ReedSolomonGF256(0x011D); |
- QRCodeFild->Init(); |
+ QRCodeField = new CBC_ReedSolomonGF256(0x011D); |
+ QRCodeField->Init(); |
DataMatrixField = new CBC_ReedSolomonGF256(0x012D); |
DataMatrixField->Init(); |
} |
void CBC_ReedSolomonGF256::Finalize() { |
- delete QRCodeFild; |
- QRCodeFild = nullptr; |
+ delete QRCodeField; |
+ QRCodeField = nullptr; |
delete DataMatrixField; |
DataMatrixField = nullptr; |
} |
@@ -53,20 +54,22 @@ CBC_ReedSolomonGF256::CBC_ReedSolomonGF256(int32_t primitive) { |
} |
m_logTable[0] = 0; |
} |
+ |
void CBC_ReedSolomonGF256::Init() { |
- m_zero = new CBC_ReedSolomonGF256Poly(this, 0); |
- m_one = new CBC_ReedSolomonGF256Poly(this, 1); |
-} |
-CBC_ReedSolomonGF256::~CBC_ReedSolomonGF256() { |
- delete m_zero; |
- delete m_one; |
+ m_zero.reset(new CBC_ReedSolomonGF256Poly(this, 0)); |
+ m_one.reset(new CBC_ReedSolomonGF256Poly(this, 1)); |
} |
-CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::GetZero() { |
- return m_zero; |
+ |
+CBC_ReedSolomonGF256::~CBC_ReedSolomonGF256() {} |
+ |
+CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::GetZero() const { |
+ return m_zero.get(); |
} |
-CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::GetOne() { |
- return m_one; |
+ |
+CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::GetOne() const { |
+ return m_one.get(); |
} |
+ |
CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::BuildMonomial( |
int32_t degree, |
int32_t coefficient, |
@@ -88,12 +91,15 @@ CBC_ReedSolomonGF256Poly* CBC_ReedSolomonGF256::BuildMonomial( |
BC_EXCEPTION_CHECK_ReturnValue(e, nullptr); |
return temp; |
} |
+ |
int32_t CBC_ReedSolomonGF256::AddOrSubtract(int32_t a, int32_t b) { |
return a ^ b; |
} |
+ |
int32_t CBC_ReedSolomonGF256::Exp(int32_t a) { |
return m_expTable[a]; |
} |
+ |
int32_t CBC_ReedSolomonGF256::Log(int32_t a, int32_t& e) { |
if (a == 0) { |
e = BCExceptionAIsZero; |
@@ -101,6 +107,7 @@ int32_t CBC_ReedSolomonGF256::Log(int32_t a, int32_t& e) { |
} |
return m_logTable[a]; |
} |
+ |
int32_t CBC_ReedSolomonGF256::Inverse(int32_t a, int32_t& e) { |
if (a == 0) { |
e = BCExceptionAIsZero; |
@@ -108,6 +115,7 @@ int32_t CBC_ReedSolomonGF256::Inverse(int32_t a, int32_t& e) { |
} |
return m_expTable[255 - m_logTable[a]]; |
} |
+ |
int32_t CBC_ReedSolomonGF256::Multiply(int32_t a, int32_t b) { |
if (a == 0 || b == 0) { |
return 0; |