Fix/suppress system/security google-explicit-constructor warnings
* Add explicit to conversion constructors/operators
* Use NOLINT or NOLINTNEXTLINE to suppress warnings on intended converters
Bug: 28341362
Test: make with WITH_TIDY=1 DEFAULT_GLOBAL_TIDY_CHECKS=-*,google-explicit-constructor
Change-Id: I4ed5aea36fcdcd8dbda9a4be9607c5af606f2a08
diff --git a/keystore/blob.h b/keystore/blob.h
index 92e4514..ff9195d 100644
--- a/keystore/blob.h
+++ b/keystore/blob.h
@@ -115,7 +115,7 @@
Blob& operator=(const Blob& rhs);
Blob& operator=(Blob&& rhs);
- operator bool() const { return bool(mBlob); }
+ explicit operator bool() const { return bool(mBlob); }
const uint8_t* getValue() const { return mBlob->value; }
@@ -239,6 +239,7 @@
static std::condition_variable locked_blobs_mutex_cond_var_;
const KeyBlobEntry* entry_;
+ // NOLINTNEXTLINE(google-explicit-constructor)
LockedKeyBlobEntry(const KeyBlobEntry& entry) : entry_(&entry) {}
static void put(const KeyBlobEntry& entry);
@@ -267,7 +268,7 @@
std::tuple<ResponseCode, Blob, Blob> readBlobs(const uint8_t* aes_key, State state) const;
ResponseCode deleteBlobs() const;
- inline operator bool() const { return entry_ != nullptr; }
+ inline explicit operator bool() const { return entry_ != nullptr; }
inline const KeyBlobEntry& operator*() const { return *entry_; }
inline const KeyBlobEntry* operator->() const { return entry_; }
};