diff options
author | Krzysztof KosiĆski <krzysio@google.com> | 2023-09-30 01:50:40 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-09-30 01:50:40 +0000 |
commit | 890e5b7689cd635b2ee9a97b77f4e1aab55adbeb (patch) | |
tree | e568063ca5d9e9e557d71e24304156a62534b94a /googletest/samples/prime_tables.h | |
parent | 18cdb377d19a2797a7db011a6402283e5bbc26fa (diff) | |
parent | 48eac985ab45a262d1620b164809f1f2e86efa49 (diff) | |
download | googletest-890e5b7689cd635b2ee9a97b77f4e1aab55adbeb.tar.gz |
Upgrade googletest to most recent upstream version. am: a00801a508 am: 1fe5590332 am: b4567e5fb1 am: 48eac985ab
Original change: https://android-review.googlesource.com/c/platform/external/googletest/+/2765314
Change-Id: I2daa58e6acde389e9697cebc16b060f4b35fbca1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'googletest/samples/prime_tables.h')
-rw-r--r-- | googletest/samples/prime_tables.h | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/googletest/samples/prime_tables.h b/googletest/samples/prime_tables.h index 3a10352b..14c016ad 100644 --- a/googletest/samples/prime_tables.h +++ b/googletest/samples/prime_tables.h @@ -27,8 +27,6 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - // This provides interface PrimeTable that determines whether a number is a // prime and determines a next prime number. This interface is used // in Google Test samples demonstrating use of parameterized tests. @@ -41,7 +39,7 @@ // The prime table interface. class PrimeTable { public: - virtual ~PrimeTable() {} + virtual ~PrimeTable() = default; // Returns true if and only if n is a prime number. virtual bool IsPrime(int n) const = 0; @@ -57,7 +55,7 @@ class OnTheFlyPrimeTable : public PrimeTable { bool IsPrime(int n) const override { if (n <= 1) return false; - for (int i = 2; i*i <= n; i++) { + for (int i = 2; i * i <= n; i++) { // n is divisible by an integer other than 1 and itself. if ((n % i) == 0) return false; } @@ -80,8 +78,9 @@ class PreCalculatedPrimeTable : public PrimeTable { public: // 'max' specifies the maximum number the prime table holds. explicit PreCalculatedPrimeTable(int max) - : is_prime_size_(max + 1), is_prime_(new bool[max + 1]) { - CalculatePrimesUpTo(max); + : is_prime_size_(std::max(1, max + 1)), + is_prime_(new bool[static_cast<size_t>(is_prime_size_)]) { + CalculatePrimesUpTo(is_prime_size_ - 1); } ~PreCalculatedPrimeTable() override { delete[] is_prime_; } @@ -104,13 +103,13 @@ class PreCalculatedPrimeTable : public PrimeTable { // Checks every candidate for prime number (we know that 2 is the only even // prime). - for (int i = 2; i*i <= max; i += i%2+1) { + for (int i = 2; i * i <= max; i += i % 2 + 1) { if (!is_prime_[i]) continue; // Marks all multiples of i (except i itself) as non-prime. // We are starting here from i-th multiplier, because all smaller // complex numbers were already marked. - for (int j = i*i; j <= max; j += i) { + for (int j = i * i; j <= max; j += i) { is_prime_[j] = false; } } |