Use base::bits::IsPowerOfTwo() in a couple more places.
Remove redundant implementations. Change-Id: If4d22652e2714c1c377cfab60302e69af05ab4d0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2967351 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Ryan Sleevi <rsleevi@chromium.org> Reviewed-by: David Benjamin <davidben@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/master@{#893540}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
97e310612b
commit
f7f9904ecc
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "base/bits.h"
|
||||||
#include "base/logging.h"
|
#include "base/logging.h"
|
||||||
#include "base/notreached.h"
|
#include "base/notreached.h"
|
||||||
#include "base/strings/string_piece.h"
|
#include "base/strings/string_piece.h"
|
||||||
@ -31,10 +32,6 @@ const unsigned char kSHA256EmptyStringHash[ct::kSthRootHashLength] = {
|
|||||||
0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b,
|
0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b,
|
||||||
0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55};
|
0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55};
|
||||||
|
|
||||||
bool IsPowerOfTwo(uint64_t n) {
|
|
||||||
return n != 0 && (n & (n - 1)) == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
const EVP_MD* GetEvpAlg(ct::DigitallySigned::HashAlgorithm alg) {
|
const EVP_MD* GetEvpAlg(ct::DigitallySigned::HashAlgorithm alg) {
|
||||||
switch (alg) {
|
switch (alg) {
|
||||||
case ct::DigitallySigned::HASH_ALGO_MD5:
|
case ct::DigitallySigned::HASH_ALGO_MD5:
|
||||||
@ -178,7 +175,7 @@ bool CTLogVerifier::VerifyConsistencyProof(
|
|||||||
// "consistency_path" array.
|
// "consistency_path" array.
|
||||||
base::StringPiece first_proof_node = old_tree_hash;
|
base::StringPiece first_proof_node = old_tree_hash;
|
||||||
auto iter = proof.nodes.begin();
|
auto iter = proof.nodes.begin();
|
||||||
if (!IsPowerOfTwo(proof.first_tree_size)) {
|
if (!base::bits::IsPowerOfTwo(proof.first_tree_size)) {
|
||||||
if (iter == proof.nodes.end())
|
if (iter == proof.nodes.end())
|
||||||
return false;
|
return false;
|
||||||
first_proof_node = *iter;
|
first_proof_node = *iter;
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <limits>
|
#include <limits>
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
|
|
||||||
|
#include "base/bits.h"
|
||||||
#include "base/check_op.h"
|
#include "base/check_op.h"
|
||||||
#include "base/cxx17_backports.h"
|
#include "base/cxx17_backports.h"
|
||||||
#include "sandbox/linux/bpf_dsl/bpf_dsl.h"
|
#include "sandbox/linux/bpf_dsl/bpf_dsl.h"
|
||||||
@ -51,11 +52,6 @@ const int kSyscallsRequiredForUnsafeTraps[] = {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
bool HasExactlyOneBit(uint64_t x) {
|
|
||||||
// Common trick; e.g., see http://stackoverflow.com/a/108329.
|
|
||||||
return x != 0 && (x & (x - 1)) == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ResultExpr DefaultPanic(const char* error) {
|
ResultExpr DefaultPanic(const char* error) {
|
||||||
return Kill();
|
return Kill();
|
||||||
}
|
}
|
||||||
@ -404,7 +400,7 @@ CodeGen::Node PolicyCompiler::MaskedEqualHalf(int argno,
|
|||||||
// For (arg & x) == x where x is a single-bit value, emit:
|
// For (arg & x) == x where x is a single-bit value, emit:
|
||||||
// LDW [idx]
|
// LDW [idx]
|
||||||
// JSET mask, passed, failed
|
// JSET mask, passed, failed
|
||||||
if (mask == value && HasExactlyOneBit(mask)) {
|
if (mask == value && base::bits::IsPowerOfTwo(mask)) {
|
||||||
return gen_.MakeInstruction(
|
return gen_.MakeInstruction(
|
||||||
BPF_LD + BPF_W + BPF_ABS,
|
BPF_LD + BPF_W + BPF_ABS,
|
||||||
idx,
|
idx,
|
||||||
|
Reference in New Issue
Block a user