Commit 7119497d authored by Frank Emrich's avatar Frank Emrich Committed by Commit Bot

[dict-proto] make SwissNameDictionary::IsValidCapacity constexpr

This fixes a build problem in gcc, where the constexpr function
SwissNameDictionary::SizeFor uses the non-constxpr function
SwissNameDictionary::IsValidCapacity in a DCHECK.

Bug: v8:11388
Change-Id: Iaeb2b80bb72da3a9c895aa33977c160533019c35
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2684514Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
Commit-Queue: Frank Emrich <emrich@google.com>
Cr-Commit-Position: refs/heads/master@{#72595}
parent 54c160d9
...@@ -31,7 +31,7 @@ int SwissNameDictionary::Capacity() { ...@@ -31,7 +31,7 @@ int SwissNameDictionary::Capacity() {
} }
// static // static
bool SwissNameDictionary::IsValidCapacity(int capacity) { constexpr bool SwissNameDictionary::IsValidCapacity(int capacity) {
return capacity == 0 || (capacity >= kInitialCapacity && return capacity == 0 || (capacity >= kInitialCapacity &&
// Must be power of 2. // Must be power of 2.
((capacity & (capacity - 1)) == 0)); ((capacity & (capacity - 1)) == 0));
...@@ -51,7 +51,7 @@ constexpr int SwissNameDictionary::CtrlTableSize(int capacity) { ...@@ -51,7 +51,7 @@ constexpr int SwissNameDictionary::CtrlTableSize(int capacity) {
// static // static
constexpr int SwissNameDictionary::SizeFor(int capacity) { constexpr int SwissNameDictionary::SizeFor(int capacity) {
DCHECK(IsValidCapacity(capacity)); CONSTEXPR_DCHECK(IsValidCapacity(capacity));
return PropertyDetailsTableStartOffset(capacity) + capacity; return PropertyDetailsTableStartOffset(capacity) + capacity;
} }
......
...@@ -70,7 +70,7 @@ class SwissNameDictionary : public HeapObject { ...@@ -70,7 +70,7 @@ class SwissNameDictionary : public HeapObject {
public: public:
inline int Capacity(); inline int Capacity();
inline static bool IsValidCapacity(int capacity); inline static constexpr bool IsValidCapacity(int capacity);
// Returns total size in bytes required for a table of given capacity. // Returns total size in bytes required for a table of given capacity.
inline static constexpr int SizeFor(int capacity); inline static constexpr int SizeFor(int capacity);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment