Skip to content

Commit

Permalink
Bug 1579862 - Making single-arg constructors explicit;r=arai
Browse files Browse the repository at this point in the history
Differential Revision: https://phabricator.services.mozilla.com/D45813

--HG--
extra : moz-landing-system : lando
  • Loading branch information
David Teller committed Sep 13, 2019
1 parent 37fa21b commit 85b6f0a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
10 changes: 5 additions & 5 deletions js/src/frontend/BinASTTokenReaderContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1734,11 +1734,11 @@ HuffmanTableImplementationGeneric<T>::begin() const {
return this->implementation.match(
[](const HuffmanTableImplementationSaturated<T>& implementation)
-> HuffmanTableImplementationGeneric<T>::Iterator {
return implementation.begin();
return Iterator(implementation.begin());
},
[](const HuffmanTableImplementationMap<T>& implementation)
-> HuffmanTableImplementationGeneric<T>::Iterator {
return implementation.begin();
return Iterator(implementation.begin());
},
[](const HuffmanTableUnreachable&)
-> HuffmanTableImplementationGeneric<T>::Iterator {
Expand All @@ -1752,11 +1752,11 @@ HuffmanTableImplementationGeneric<T>::end() const {
return this->implementation.match(
[](const HuffmanTableImplementationSaturated<T>& implementation)
-> HuffmanTableImplementationGeneric<T>::Iterator {
return implementation.end();
return Iterator(implementation.end());
},
[](const HuffmanTableImplementationMap<T>& implementation)
-> HuffmanTableImplementationGeneric<T>::Iterator {
return implementation.end();
return Iterator(implementation.end());
},
[](const HuffmanTableUnreachable&)
-> HuffmanTableImplementationGeneric<T>::Iterator {
Expand Down Expand Up @@ -1964,7 +1964,7 @@ HuffmanEntry<const T*> HuffmanTableImplementationMap<T>::lookup(
const uint32_t bits = lookup.leadingBits(bitLength);
const HuffmanKey key(bits, bitLength);
const FlatHuffmanKey flat(key);
if (auto ptr = values.lookup(key)) {
if (auto ptr = values.lookup(flat)) {
// Entry found.
return HuffmanEntry<const T*>(bits, bitLength, &ptr->value());
}
Expand Down
15 changes: 9 additions & 6 deletions js/src/frontend/BinASTTokenReaderContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,8 @@ struct HuffmanKey {

// A Huffman key represented as a single `uint32_t`.
struct FlatHuffmanKey {
FlatHuffmanKey(HuffmanKey key);
FlatHuffmanKey(const HuffmanKey* key);
explicit FlatHuffmanKey(HuffmanKey key);
explicit FlatHuffmanKey(const HuffmanKey* key);

// 0b0000000L_LLLLCCCC_CCCCCCCC_CCCCCCCC
// Where:
Expand Down Expand Up @@ -489,8 +489,8 @@ struct HuffmanTableUnreachable {};
//
template <typename T>
struct HuffmanTableImplementationGeneric {
HuffmanTableImplementationGeneric(JSContext* cx);
HuffmanTableImplementationGeneric() = delete;
explicit HuffmanTableImplementationGeneric(JSContext* cx);
explicit HuffmanTableImplementationGeneric() = delete;

// Initialize a Huffman table containing a single value.
JS::Result<Ok> initWithSingleValue(JSContext* cx, T&& value);
Expand All @@ -511,8 +511,11 @@ struct HuffmanTableImplementationGeneric {
size_t length() const;

struct Iterator {
Iterator(typename HuffmanTableImplementationSaturated<T>::Iterator&&);
Iterator(typename HuffmanTableImplementationMap<T>::Iterator&&);
explicit Iterator(
typename HuffmanTableImplementationSaturated<T>::Iterator&&);
explicit Iterator(typename HuffmanTableImplementationMap<T>::Iterator&&);
Iterator(Iterator&&) = default;
Iterator(const Iterator&) = default;
void operator++();
const T* operator*() const;
bool operator==(const Iterator& other) const;
Expand Down

0 comments on commit 85b6f0a

Please sign in to comment.