summaryrefslogtreecommitdiff
path: root/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2017-04-05 18:42:22 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-04-06 01:58:05 +0000
commit1b22880748c3f3b3740699ae4c953a33f65ad10f (patch)
tree57d7155639ea2f19dea22cb08ec3ce0b76bcbf9b /fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
parent0b18e1599dc9d07355c4ab6a069de33a536f7ba8 (diff)
downloadpdfium-1b22880748c3f3b3740699ae4c953a33f65ad10f.tar.xz
Change some fxbarcode to use return values.
No caller cares about the exception values anyway. Remove the unused ones. Also use more std::unique_ptr to stop potential leaks. Change-Id: Ic5955fb0d879f55e1c6a005c0204df50246dab19 Reviewed-on: https://pdfium-review.googlesource.com/3715 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h')
-rw-r--r--fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h40
1 files changed, 19 insertions, 21 deletions
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
index 284b531e81..ce8a572704 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256Poly.h
@@ -7,6 +7,7 @@
#ifndef FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMONGF256POLY_H_
#define FXBARCODE_COMMON_REEDSOLOMON_BC_REEDSOLOMONGF256POLY_H_
+#include <memory>
#include <vector>
#include "core/fxcrt/fx_basic.h"
@@ -18,28 +19,25 @@ class CBC_ReedSolomonGF256Poly final {
CBC_ReedSolomonGF256Poly(CBC_ReedSolomonGF256* field, int32_t coefficients);
CBC_ReedSolomonGF256Poly();
~CBC_ReedSolomonGF256Poly();
- void Init(CBC_ReedSolomonGF256* field,
- std::vector<int32_t>* coefficients,
- int32_t& e);
-
- int32_t GetCoefficients(int32_t degree);
- std::vector<int32_t>* GetCoefficients();
- int32_t GetDegree();
- bool IsZero();
+ bool Init(CBC_ReedSolomonGF256* field,
+ const std::vector<int32_t>* coefficients);
+
+ int32_t GetCoefficients(int32_t degree) const;
+ const std::vector<int32_t>& GetCoefficients() const;
+ int32_t GetDegree() const;
+ bool IsZero() const;
int32_t EvaluateAt(int32_t a);
- CBC_ReedSolomonGF256Poly* AddOrSubtract(CBC_ReedSolomonGF256Poly* other,
- int32_t& e);
- CBC_ReedSolomonGF256Poly* Multiply(CBC_ReedSolomonGF256Poly* other,
- int32_t& e);
- CBC_ReedSolomonGF256Poly* Multiply(int32_t scalar, int32_t& e);
- CBC_ReedSolomonGF256Poly* MultiplyByMonomial(int32_t degree,
- int32_t coefficient,
- int32_t& e);
- std::vector<CBC_ReedSolomonGF256Poly*>* Divide(
- CBC_ReedSolomonGF256Poly* other,
- int32_t& e);
-
- CBC_ReedSolomonGF256Poly* Clone(int32_t& e);
+ std::unique_ptr<CBC_ReedSolomonGF256Poly> AddOrSubtract(
+ const CBC_ReedSolomonGF256Poly* other);
+ std::unique_ptr<CBC_ReedSolomonGF256Poly> Multiply(
+ const CBC_ReedSolomonGF256Poly* other);
+ std::unique_ptr<CBC_ReedSolomonGF256Poly> Multiply(int32_t scalar);
+ std::unique_ptr<CBC_ReedSolomonGF256Poly> MultiplyByMonomial(
+ int32_t degree,
+ int32_t coefficient) const;
+ std::unique_ptr<CBC_ReedSolomonGF256Poly> Divide(
+ const CBC_ReedSolomonGF256Poly* other);
+ std::unique_ptr<CBC_ReedSolomonGF256Poly> Clone() const;
private:
CBC_ReedSolomonGF256* m_field;