Fix overloaded operators in bigint.
Assignment and increment/decrement operators should return values.
PiperOrigin-RevId: 254821537
Change-Id: I85d2fe7669474cb27850b7e4196edb424dd87ad1
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/56891
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/third_party/bigint/BigUnsigned.cc b/third_party/bigint/BigUnsigned.cc
index e38e4aa..0713632 100644
--- a/third_party/bigint/BigUnsigned.cc
+++ b/third_party/bigint/BigUnsigned.cc
@@ -659,7 +659,7 @@
// INCREMENT/DECREMENT OPERATORS
// Prefix increment
-void BigUnsigned::operator ++() {
+BigUnsigned& BigUnsigned::operator ++() {
Index i;
bool carry = true;
for (i = 0; i < len && carry; i++) {
@@ -672,15 +672,18 @@
len++;
blk[i] = 1;
}
+ return *this;
}
-// Postfix increment: same as prefix
-void BigUnsigned::operator ++(int) {
+// Postfix increment
+BigUnsigned BigUnsigned::operator ++(int) {
+ BigUnsigned temp(*this);
operator ++();
+ return temp;
}
// Prefix decrement
-void BigUnsigned::operator --() {
+BigUnsigned& BigUnsigned::operator --() {
if (len == 0)
abort();
Index i;
@@ -692,9 +695,12 @@
// Zap possible leading zero (there can only be one)
if (blk[len - 1] == 0)
len--;
+ return *this;
}
-// Postfix decrement: same as prefix
-void BigUnsigned::operator --(int) {
+// Postfix decrement
+BigUnsigned BigUnsigned::operator --(int) {
+ BigUnsigned temp(*this);
operator --();
+ return temp;
}