Everywhere: Run clang-format

This commit is contained in:
Idan Horowitz 2022-04-01 20:58:27 +03:00 committed by Linus Groh
parent 0376c127f6
commit 086969277e
Notes: sideshowbarker 2024-07-17 16:21:09 +09:00
1665 changed files with 8479 additions and 8479 deletions

View file

@ -146,9 +146,9 @@ class Atomic {
public: public:
Atomic() noexcept = default; Atomic() noexcept = default;
Atomic& operator=(const Atomic&) volatile = delete; Atomic& operator=(Atomic const&) volatile = delete;
Atomic& operator=(Atomic&&) volatile = delete; Atomic& operator=(Atomic&&) volatile = delete;
Atomic(const Atomic&) = delete; Atomic(Atomic const&) = delete;
Atomic(Atomic&&) = delete; Atomic(Atomic&&) = delete;
constexpr Atomic(T val) noexcept constexpr Atomic(T val) noexcept
@ -215,9 +215,9 @@ class Atomic<T, DefaultMemoryOrder> {
public: public:
Atomic() noexcept = default; Atomic() noexcept = default;
Atomic& operator=(const Atomic&) volatile = delete; Atomic& operator=(Atomic const&) volatile = delete;
Atomic& operator=(Atomic&&) volatile = delete; Atomic& operator=(Atomic&&) volatile = delete;
Atomic(const Atomic&) = delete; Atomic(Atomic const&) = delete;
Atomic(Atomic&&) = delete; Atomic(Atomic&&) = delete;
constexpr Atomic(T val) noexcept constexpr Atomic(T val) noexcept
@ -346,9 +346,9 @@ class Atomic<T*, DefaultMemoryOrder> {
public: public:
Atomic() noexcept = default; Atomic() noexcept = default;
Atomic& operator=(const Atomic&) volatile = delete; Atomic& operator=(Atomic const&) volatile = delete;
Atomic& operator=(Atomic&&) volatile = delete; Atomic& operator=(Atomic&&) volatile = delete;
Atomic(const Atomic&) = delete; Atomic(Atomic const&) = delete;
Atomic(Atomic&&) = delete; Atomic(Atomic&&) = delete;
constexpr Atomic(T* val) noexcept constexpr Atomic(T* val) noexcept

View file

@ -17,8 +17,8 @@ private:
friend T; friend T;
constexpr Badge() = default; constexpr Badge() = default;
Badge(const Badge&) = delete; Badge(Badge const&) = delete;
Badge& operator=(const Badge&) = delete; Badge& operator=(Badge const&) = delete;
Badge(Badge&&) = delete; Badge(Badge&&) = delete;
Badge& operator=(Badge&&) = delete; Badge& operator=(Badge&&) = delete;

View file

@ -126,10 +126,10 @@ String encode_base64(ReadonlyBytes input)
const u8 index2 = ((in1 << 2) | (in2 >> 6)) & 0x3f; const u8 index2 = ((in1 << 2) | (in2 >> 6)) & 0x3f;
const u8 index3 = in2 & 0x3f; const u8 index3 = in2 & 0x3f;
const char out0 = alphabet[index0]; char const out0 = alphabet[index0];
const char out1 = alphabet[index1]; char const out1 = alphabet[index1];
const char out2 = is_16bit ? '=' : alphabet[index2]; char const out2 = is_16bit ? '=' : alphabet[index2];
const char out3 = is_8bit ? '=' : alphabet[index3]; char const out3 = is_8bit ? '=' : alphabet[index3];
output.append(out0); output.append(out0);
output.append(out1); output.append(out1);

View file

@ -74,7 +74,7 @@ public:
} }
if (m_next_byte.has_value()) { if (m_next_byte.has_value()) {
const auto bit = (m_next_byte.value() >> m_bit_offset) & 1; auto const bit = (m_next_byte.value() >> m_bit_offset) & 1;
result |= bit << nread; result |= bit << nread;
++nread; ++nread;
@ -109,7 +109,7 @@ public:
nread += 8; nread += 8;
m_next_byte.clear(); m_next_byte.clear();
} else { } else {
const auto bit = (m_next_byte.value() >> (7 - m_bit_offset)) & 1; auto const bit = (m_next_byte.value() >> (7 - m_bit_offset)) & 1;
result <<= 1; result <<= 1;
result |= bit; result |= bit;
++nread; ++nread;

View file

@ -48,8 +48,8 @@ public:
return 0; return 0;
size_t count; size_t count;
const u8* first = &m_data[start / 8]; u8 const* first = &m_data[start / 8];
const u8* last = &m_data[(start + len) / 8]; u8 const* last = &m_data[(start + len) / 8];
u8 byte = *first; u8 byte = *first;
byte &= bitmask_first_byte[start % 8]; byte &= bitmask_first_byte[start % 8];
if (first == last) { if (first == last) {
@ -64,19 +64,19 @@ public:
count += popcount(byte); count += popcount(byte);
} }
if (++first < last) { if (++first < last) {
const size_t* ptr_large = (const size_t*)(((FlatPtr)first + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1)); size_t const* ptr_large = (size_t const*)(((FlatPtr)first + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1));
if ((const u8*)ptr_large > last) if ((u8 const*)ptr_large > last)
ptr_large = (const size_t*)last; ptr_large = (size_t const*)last;
while (first < (const u8*)ptr_large) { while (first < (u8 const*)ptr_large) {
count += popcount(*first); count += popcount(*first);
first++; first++;
} }
const size_t* last_large = (const size_t*)((FlatPtr)last & ~(sizeof(size_t) - 1)); size_t const* last_large = (size_t const*)((FlatPtr)last & ~(sizeof(size_t) - 1));
while (ptr_large < last_large) { while (ptr_large < last_large) {
count += popcount(*ptr_large); count += popcount(*ptr_large);
ptr_large++; ptr_large++;
} }
for (first = (const u8*)ptr_large; first < last; first++) for (first = (u8 const*)ptr_large; first < last; first++)
count += popcount(*first); count += popcount(*first);
} }
} }
@ -88,24 +88,24 @@ public:
[[nodiscard]] bool is_null() const { return m_data == nullptr; } [[nodiscard]] bool is_null() const { return m_data == nullptr; }
[[nodiscard]] const u8* data() const { return m_data; } [[nodiscard]] u8 const* data() const { return m_data; }
template<bool VALUE> template<bool VALUE>
Optional<size_t> find_one_anywhere(size_t hint = 0) const Optional<size_t> find_one_anywhere(size_t hint = 0) const
{ {
VERIFY(hint < m_size); VERIFY(hint < m_size);
const u8* end = &m_data[m_size / 8]; u8 const* end = &m_data[m_size / 8];
for (;;) { for (;;) {
// We will use hint as what it is: a hint. Because we try to // We will use hint as what it is: a hint. Because we try to
// scan over entire 32 bit words, we may start searching before // scan over entire 32 bit words, we may start searching before
// the hint! // the hint!
const size_t* ptr_large = (const size_t*)((FlatPtr)&m_data[hint / 8] & ~(sizeof(size_t) - 1)); size_t const* ptr_large = (size_t const*)((FlatPtr)&m_data[hint / 8] & ~(sizeof(size_t) - 1));
if ((const u8*)ptr_large < &m_data[0]) { if ((u8 const*)ptr_large < &m_data[0]) {
ptr_large++; ptr_large++;
// m_data isn't aligned, check first bytes // m_data isn't aligned, check first bytes
size_t start_ptr_large = (const u8*)ptr_large - &m_data[0]; size_t start_ptr_large = (u8 const*)ptr_large - &m_data[0];
size_t i = 0; size_t i = 0;
u8 byte = VALUE ? 0x00 : 0xff; u8 byte = VALUE ? 0x00 : 0xff;
while (i < start_ptr_large && m_data[i] == byte) while (i < start_ptr_large && m_data[i] == byte)
@ -120,14 +120,14 @@ public:
} }
size_t val_large = VALUE ? 0x0 : NumericLimits<size_t>::max(); size_t val_large = VALUE ? 0x0 : NumericLimits<size_t>::max();
const size_t* end_large = (const size_t*)((FlatPtr)end & ~(sizeof(size_t) - 1)); size_t const* end_large = (size_t const*)((FlatPtr)end & ~(sizeof(size_t) - 1));
while (ptr_large < end_large && *ptr_large == val_large) while (ptr_large < end_large && *ptr_large == val_large)
ptr_large++; ptr_large++;
if (ptr_large == end_large) { if (ptr_large == end_large) {
// We didn't find anything, check the remaining few bytes (if any) // We didn't find anything, check the remaining few bytes (if any)
u8 byte = VALUE ? 0x00 : 0xff; u8 byte = VALUE ? 0x00 : 0xff;
size_t i = (const u8*)ptr_large - &m_data[0]; size_t i = (u8 const*)ptr_large - &m_data[0];
size_t byte_count = m_size / 8; size_t byte_count = m_size / 8;
VERIFY(i <= byte_count); VERIFY(i <= byte_count);
while (i < byte_count && m_data[i] == byte) while (i < byte_count && m_data[i] == byte)
@ -137,7 +137,7 @@ public:
return {}; // We already checked from the beginning return {}; // We already checked from the beginning
// Try scanning before the hint // Try scanning before the hint
end = (const u8*)((FlatPtr)&m_data[hint / 8] & ~(sizeof(size_t) - 1)); end = (u8 const*)((FlatPtr)&m_data[hint / 8] & ~(sizeof(size_t) - 1));
hint = 0; hint = 0;
continue; continue;
} }
@ -154,7 +154,7 @@ public:
if constexpr (!VALUE) if constexpr (!VALUE)
val_large = ~val_large; val_large = ~val_large;
VERIFY(val_large != 0); VERIFY(val_large != 0);
return ((const u8*)ptr_large - &m_data[0]) * 8 + bit_scan_forward(val_large) - 1; return ((u8 const*)ptr_large - &m_data[0]) * 8 + bit_scan_forward(val_large) - 1;
} }
} }

View file

@ -18,34 +18,34 @@ struct ByteReader {
__builtin_memcpy(addr, &value, sizeof(T)); __builtin_memcpy(addr, &value, sizeof(T));
} }
template<typename T> template<typename T>
requires(IsTriviallyConstructible<T>) static void load(const u8* addr, T& value) requires(IsTriviallyConstructible<T>) static void load(u8 const* addr, T& value)
{ {
__builtin_memcpy(&value, addr, sizeof(T)); __builtin_memcpy(&value, addr, sizeof(T));
} }
template<typename T> template<typename T>
static T* load_pointer(const u8* address) static T* load_pointer(u8 const* address)
{ {
FlatPtr value; FlatPtr value;
load<FlatPtr>(address, value); load<FlatPtr>(address, value);
return reinterpret_cast<T*>(value); return reinterpret_cast<T*>(value);
} }
static u16 load16(const u8* address) static u16 load16(u8 const* address)
{ {
u16 value; u16 value;
load(address, value); load(address, value);
return value; return value;
} }
static u32 load32(const u8* address) static u32 load32(u8 const* address)
{ {
u32 value; u32 value;
load(address, value); load(address, value);
return value; return value;
} }
static u64 load64(const u8* address) static u64 load64(u8 const* address)
{ {
u64 value; u64 value;
load(address, value); load(address, value);

View file

@ -127,7 +127,7 @@ public:
m_value = value; m_value = value;
} }
constexpr Checked(const Checked&) = default; constexpr Checked(Checked const&) = default;
constexpr Checked(Checked&& other) constexpr Checked(Checked&& other)
: m_value(exchange(other.m_value, 0)) : m_value(exchange(other.m_value, 0))
@ -142,7 +142,7 @@ public:
return *this; return *this;
} }
constexpr Checked& operator=(const Checked& other) = default; constexpr Checked& operator=(Checked const& other) = default;
constexpr Checked& operator=(Checked&& other) constexpr Checked& operator=(Checked&& other)
{ {
@ -199,7 +199,7 @@ public:
m_value /= other; m_value /= other;
} }
constexpr Checked& operator+=(const Checked& other) constexpr Checked& operator+=(Checked const& other)
{ {
m_overflow |= other.m_overflow; m_overflow |= other.m_overflow;
add(other.value()); add(other.value());
@ -212,7 +212,7 @@ public:
return *this; return *this;
} }
constexpr Checked& operator-=(const Checked& other) constexpr Checked& operator-=(Checked const& other)
{ {
m_overflow |= other.m_overflow; m_overflow |= other.m_overflow;
sub(other.value()); sub(other.value());
@ -225,7 +225,7 @@ public:
return *this; return *this;
} }
constexpr Checked& operator*=(const Checked& other) constexpr Checked& operator*=(Checked const& other)
{ {
m_overflow |= other.m_overflow; m_overflow |= other.m_overflow;
mul(other.value()); mul(other.value());
@ -238,7 +238,7 @@ public:
return *this; return *this;
} }
constexpr Checked& operator/=(const Checked& other) constexpr Checked& operator/=(Checked const& other)
{ {
m_overflow |= other.m_overflow; m_overflow |= other.m_overflow;
div(other.value()); div(other.value());
@ -319,7 +319,7 @@ private:
}; };
template<typename T> template<typename T>
constexpr Checked<T> operator+(const Checked<T>& a, const Checked<T>& b) constexpr Checked<T> operator+(Checked<T> const& a, Checked<T> const& b)
{ {
Checked<T> c { a }; Checked<T> c { a };
c.add(b.value()); c.add(b.value());
@ -327,7 +327,7 @@ constexpr Checked<T> operator+(const Checked<T>& a, const Checked<T>& b)
} }
template<typename T> template<typename T>
constexpr Checked<T> operator-(const Checked<T>& a, const Checked<T>& b) constexpr Checked<T> operator-(Checked<T> const& a, Checked<T> const& b)
{ {
Checked<T> c { a }; Checked<T> c { a };
c.sub(b.value()); c.sub(b.value());
@ -335,7 +335,7 @@ constexpr Checked<T> operator-(const Checked<T>& a, const Checked<T>& b)
} }
template<typename T> template<typename T>
constexpr Checked<T> operator*(const Checked<T>& a, const Checked<T>& b) constexpr Checked<T> operator*(Checked<T> const& a, Checked<T> const& b)
{ {
Checked<T> c { a }; Checked<T> c { a };
c.mul(b.value()); c.mul(b.value());
@ -343,7 +343,7 @@ constexpr Checked<T> operator*(const Checked<T>& a, const Checked<T>& b)
} }
template<typename T> template<typename T>
constexpr Checked<T> operator/(const Checked<T>& a, const Checked<T>& b) constexpr Checked<T> operator/(Checked<T> const& a, Checked<T> const& b)
{ {
Checked<T> c { a }; Checked<T> c { a };
c.div(b.value()); c.div(b.value());
@ -351,73 +351,73 @@ constexpr Checked<T> operator/(const Checked<T>& a, const Checked<T>& b)
} }
template<typename T> template<typename T>
constexpr bool operator<(const Checked<T>& a, T b) constexpr bool operator<(Checked<T> const& a, T b)
{ {
return a.value() < b; return a.value() < b;
} }
template<typename T> template<typename T>
constexpr bool operator>(const Checked<T>& a, T b) constexpr bool operator>(Checked<T> const& a, T b)
{ {
return a.value() > b; return a.value() > b;
} }
template<typename T> template<typename T>
constexpr bool operator>=(const Checked<T>& a, T b) constexpr bool operator>=(Checked<T> const& a, T b)
{ {
return a.value() >= b; return a.value() >= b;
} }
template<typename T> template<typename T>
constexpr bool operator<=(const Checked<T>& a, T b) constexpr bool operator<=(Checked<T> const& a, T b)
{ {
return a.value() <= b; return a.value() <= b;
} }
template<typename T> template<typename T>
constexpr bool operator==(const Checked<T>& a, T b) constexpr bool operator==(Checked<T> const& a, T b)
{ {
return a.value() == b; return a.value() == b;
} }
template<typename T> template<typename T>
constexpr bool operator!=(const Checked<T>& a, T b) constexpr bool operator!=(Checked<T> const& a, T b)
{ {
return a.value() != b; return a.value() != b;
} }
template<typename T> template<typename T>
constexpr bool operator<(T a, const Checked<T>& b) constexpr bool operator<(T a, Checked<T> const& b)
{ {
return a < b.value(); return a < b.value();
} }
template<typename T> template<typename T>
constexpr bool operator>(T a, const Checked<T>& b) constexpr bool operator>(T a, Checked<T> const& b)
{ {
return a > b.value(); return a > b.value();
} }
template<typename T> template<typename T>
constexpr bool operator>=(T a, const Checked<T>& b) constexpr bool operator>=(T a, Checked<T> const& b)
{ {
return a >= b.value(); return a >= b.value();
} }
template<typename T> template<typename T>
constexpr bool operator<=(T a, const Checked<T>& b) constexpr bool operator<=(T a, Checked<T> const& b)
{ {
return a <= b.value(); return a <= b.value();
} }
template<typename T> template<typename T>
constexpr bool operator==(T a, const Checked<T>& b) constexpr bool operator==(T a, Checked<T> const& b)
{ {
return a == b.value(); return a == b.value();
} }
template<typename T> template<typename T>
constexpr bool operator!=(T a, const Checked<T>& b) constexpr bool operator!=(T a, Checked<T> const& b)
{ {
return a != b.value(); return a != b.value();
} }

View file

@ -45,7 +45,7 @@ template<typename... Args>
void compiletime_fail(Args...); void compiletime_fail(Args...);
template<size_t N> template<size_t N>
consteval auto extract_used_argument_index(const char (&fmt)[N], size_t specifier_start_index, size_t specifier_end_index, size_t& next_implicit_argument_index) consteval auto extract_used_argument_index(char const (&fmt)[N], size_t specifier_start_index, size_t specifier_end_index, size_t& next_implicit_argument_index)
{ {
struct { struct {
size_t index_value { 0 }; size_t index_value { 0 };
@ -69,7 +69,7 @@ consteval auto extract_used_argument_index(const char (&fmt)[N], size_t specifie
// FIXME: We should rather parse these format strings at compile-time if possible. // FIXME: We should rather parse these format strings at compile-time if possible.
template<size_t N> template<size_t N>
consteval auto count_fmt_params(const char (&fmt)[N]) consteval auto count_fmt_params(char const (&fmt)[N])
{ {
struct { struct {
// FIXME: Switch to variable-sized storage whenever we can come up with one :) // FIXME: Switch to variable-sized storage whenever we can come up with one :)
@ -118,7 +118,7 @@ consteval auto count_fmt_params(const char (&fmt)[N])
if (result.total_used_last_format_specifier_start_count == 0) if (result.total_used_last_format_specifier_start_count == 0)
compiletime_fail("Format-String Checker internal error: Expected location information"); compiletime_fail("Format-String Checker internal error: Expected location information");
const auto specifier_start_index = result.last_format_specifier_start[--result.total_used_last_format_specifier_start_count]; auto const specifier_start_index = result.last_format_specifier_start[--result.total_used_last_format_specifier_start_count];
if (result.total_used_argument_count >= result.used_arguments.size()) if (result.total_used_argument_count >= result.used_arguments.size())
compiletime_fail("Format-String Checker internal error: Too many format arguments in format string"); compiletime_fail("Format-String Checker internal error: Too many format arguments in format string");
@ -146,7 +146,7 @@ namespace AK::Format::Detail {
template<typename... Args> template<typename... Args>
struct CheckedFormatString { struct CheckedFormatString {
template<size_t N> template<size_t N>
consteval CheckedFormatString(const char (&fmt)[N]) consteval CheckedFormatString(char const (&fmt)[N])
: m_string { fmt } : m_string { fmt }
{ {
#ifdef ENABLE_COMPILETIME_FORMAT_CHECK #ifdef ENABLE_COMPILETIME_FORMAT_CHECK
@ -165,7 +165,7 @@ struct CheckedFormatString {
private: private:
#ifdef ENABLE_COMPILETIME_FORMAT_CHECK #ifdef ENABLE_COMPILETIME_FORMAT_CHECK
template<size_t N, size_t param_count> template<size_t N, size_t param_count>
consteval static bool check_format_parameter_consistency(const char (&fmt)[N]) consteval static bool check_format_parameter_consistency(char const (&fmt)[N])
{ {
auto check = count_fmt_params<N>(fmt); auto check = count_fmt_params<N>(fmt);
if (check.unclosed_braces != 0) if (check.unclosed_braces != 0)

View file

@ -17,7 +17,7 @@ public:
template<typename U = T> template<typename U = T>
void enqueue_begin(U&& value) void enqueue_begin(U&& value)
{ {
const auto new_head = (this->m_head - 1 + Capacity) % Capacity; auto const new_head = (this->m_head - 1 + Capacity) % Capacity;
auto& slot = this->elements()[new_head]; auto& slot = this->elements()[new_head];
if (this->m_size == Capacity) if (this->m_size == Capacity)
slot.~T(); slot.~T();

View file

@ -18,7 +18,7 @@ class CircularDuplexStream : public AK::DuplexStream {
public: public:
size_t write(ReadonlyBytes bytes) override size_t write(ReadonlyBytes bytes) override
{ {
const auto nwritten = min(bytes.size(), Capacity - m_queue.size()); auto const nwritten = min(bytes.size(), Capacity - m_queue.size());
for (size_t idx = 0; idx < nwritten; ++idx) for (size_t idx = 0; idx < nwritten; ++idx)
m_queue.enqueue(bytes[idx]); m_queue.enqueue(bytes[idx]);
@ -34,7 +34,7 @@ public:
return false; return false;
} }
const auto nwritten = write(bytes); auto const nwritten = write(bytes);
VERIFY(nwritten == bytes.size()); VERIFY(nwritten == bytes.size());
return true; return true;
} }
@ -44,7 +44,7 @@ public:
if (has_any_error()) if (has_any_error())
return 0; return 0;
const auto nread = min(bytes.size(), m_queue.size()); auto const nread = min(bytes.size(), m_queue.size());
for (size_t idx = 0; idx < nread; ++idx) for (size_t idx = 0; idx < nread; ++idx)
bytes[idx] = m_queue.dequeue(); bytes[idx] = m_queue.dequeue();
@ -59,10 +59,10 @@ public:
return 0; return 0;
} }
const auto nread = min(bytes.size(), seekback); auto const nread = min(bytes.size(), seekback);
for (size_t idx = 0; idx < nread; ++idx) { for (size_t idx = 0; idx < nread; ++idx) {
const auto index = (m_total_written - seekback + idx) % Capacity; auto const index = (m_total_written - seekback + idx) % Capacity;
bytes[idx] = m_queue.m_storage[index]; bytes[idx] = m_queue.m_storage[index];
} }

View file

@ -70,7 +70,7 @@ public:
class ConstIterator { class ConstIterator {
public: public:
bool operator!=(const ConstIterator& other) { return m_index != other.m_index; } bool operator!=(ConstIterator const& other) { return m_index != other.m_index; }
ConstIterator& operator++() ConstIterator& operator++()
{ {
++m_index; ++m_index;
@ -81,12 +81,12 @@ public:
private: private:
friend class CircularQueue; friend class CircularQueue;
ConstIterator(const CircularQueue& queue, const size_t index) ConstIterator(CircularQueue const& queue, const size_t index)
: m_queue(queue) : m_queue(queue)
, m_index(index) , m_index(index)
{ {
} }
const CircularQueue& m_queue; CircularQueue const& m_queue;
size_t m_index { 0 }; size_t m_index { 0 };
}; };

View file

@ -61,7 +61,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T>& operator=(const Complex<U>& other) constexpr Complex<T>& operator=(Complex<U> const& other)
{ {
m_real = other.real(); m_real = other.real();
m_imag = other.imag(); m_imag = other.imag();
@ -77,7 +77,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator+=(const Complex<U>& x) constexpr Complex<T> operator+=(Complex<U> const& x)
{ {
m_real += x.real(); m_real += x.real();
m_imag += x.imag(); m_imag += x.imag();
@ -92,7 +92,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator-=(const Complex<U>& x) constexpr Complex<T> operator-=(Complex<U> const& x)
{ {
m_real -= x.real(); m_real -= x.real();
m_imag -= x.imag(); m_imag -= x.imag();
@ -107,7 +107,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator*=(const Complex<U>& x) constexpr Complex<T> operator*=(Complex<U> const& x)
{ {
const T real = m_real; const T real = m_real;
m_real = real * x.real() - m_imag * x.imag(); m_real = real * x.real() - m_imag * x.imag();
@ -124,7 +124,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator/=(const Complex<U>& x) constexpr Complex<T> operator/=(Complex<U> const& x)
{ {
const T real = m_real; const T real = m_real;
const T divisor = x.real() * x.real() + x.imag() * x.imag(); const T divisor = x.real() * x.real() + x.imag() * x.imag();
@ -142,7 +142,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator+(const Complex<U>& a) constexpr Complex<T> operator+(Complex<U> const& a)
{ {
Complex<T> x = *this; Complex<T> x = *this;
x += a; x += a;
@ -158,7 +158,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator-(const Complex<U>& a) constexpr Complex<T> operator-(Complex<U> const& a)
{ {
Complex<T> x = *this; Complex<T> x = *this;
x -= a; x -= a;
@ -174,7 +174,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator*(const Complex<U>& a) constexpr Complex<T> operator*(Complex<U> const& a)
{ {
Complex<T> x = *this; Complex<T> x = *this;
x *= a; x *= a;
@ -190,7 +190,7 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr Complex<T> operator/(const Complex<U>& a) constexpr Complex<T> operator/(Complex<U> const& a)
{ {
Complex<T> x = *this; Complex<T> x = *this;
x /= a; x /= a;
@ -206,13 +206,13 @@ public:
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr bool operator==(const Complex<U>& a) const constexpr bool operator==(Complex<U> const& a) const
{ {
return (this->real() == a.real()) && (this->imag() == a.imag()); return (this->real() == a.real()) && (this->imag() == a.imag());
} }
template<AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic U>
constexpr bool operator!=(const Complex<U>& a) const constexpr bool operator!=(Complex<U> const& a) const
{ {
return !(*this == a); return !(*this == a);
} }
@ -234,7 +234,7 @@ private:
// reverse associativity operators for scalars // reverse associativity operators for scalars
template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U>
constexpr Complex<T> operator+(const U& b, const Complex<T>& a) constexpr Complex<T> operator+(const U& b, Complex<T> const& a)
{ {
Complex<T> x = a; Complex<T> x = a;
x += b; x += b;
@ -242,7 +242,7 @@ constexpr Complex<T> operator+(const U& b, const Complex<T>& a)
} }
template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U>
constexpr Complex<T> operator-(const U& b, const Complex<T>& a) constexpr Complex<T> operator-(const U& b, Complex<T> const& a)
{ {
Complex<T> x = a; Complex<T> x = a;
x -= b; x -= b;
@ -250,7 +250,7 @@ constexpr Complex<T> operator-(const U& b, const Complex<T>& a)
} }
template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U>
constexpr Complex<T> operator*(const U& b, const Complex<T>& a) constexpr Complex<T> operator*(const U& b, Complex<T> const& a)
{ {
Complex<T> x = a; Complex<T> x = a;
x *= b; x *= b;
@ -258,7 +258,7 @@ constexpr Complex<T> operator*(const U& b, const Complex<T>& a)
} }
template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U>
constexpr Complex<T> operator/(const U& b, const Complex<T>& a) constexpr Complex<T> operator/(const U& b, Complex<T> const& a)
{ {
Complex<T> x = a; Complex<T> x = a;
x /= b; x /= b;
@ -272,15 +272,15 @@ template<AK::Concepts::Arithmetic T>
static constinit Complex<T> complex_imag_unit = Complex<T>((T)0, (T)1); static constinit Complex<T> complex_imag_unit = Complex<T>((T)0, (T)1);
template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U> template<AK::Concepts::Arithmetic T, AK::Concepts::Arithmetic U>
static constexpr bool approx_eq(const Complex<T>& a, const Complex<U>& b, const double margin = 0.000001) static constexpr bool approx_eq(Complex<T> const& a, Complex<U> const& b, double const margin = 0.000001)
{ {
const auto x = const_cast<Complex<T>&>(a) - const_cast<Complex<U>&>(b); auto const x = const_cast<Complex<T>&>(a) - const_cast<Complex<U>&>(b);
return x.magnitude() <= margin; return x.magnitude() <= margin;
} }
// complex version of exp() // complex version of exp()
template<AK::Concepts::Arithmetic T> template<AK::Concepts::Arithmetic T>
static constexpr Complex<T> cexp(const Complex<T>& a) static constexpr Complex<T> cexp(Complex<T> const& a)
{ {
// FIXME: this can probably be faster and not use so many "expensive" trigonometric functions // FIXME: this can probably be faster and not use so many "expensive" trigonometric functions
return exp(a.real()) * Complex<T>(cos(a.imag()), sin(a.imag())); return exp(a.real()) * Complex<T>(cos(a.imag()), sin(a.imag()));

View file

@ -63,11 +63,11 @@ public:
constexpr T& value() { return m_value; } constexpr T& value() { return m_value; }
// Always implemented: identity. // Always implemented: identity.
constexpr bool operator==(const Self& other) const constexpr bool operator==(Self const& other) const
{ {
return this->m_value == other.m_value; return this->m_value == other.m_value;
} }
constexpr bool operator!=(const Self& other) const constexpr bool operator!=(Self const& other) const
{ {
return this->m_value != other.m_value; return this->m_value != other.m_value;
} }
@ -101,22 +101,22 @@ public:
} }
// Only implemented when `Cmp` is true: // Only implemented when `Cmp` is true:
constexpr bool operator>(const Self& other) const constexpr bool operator>(Self const& other) const
{ {
static_assert(Cmp, "'a>b' is only available for DistinctNumeric types with 'Cmp'."); static_assert(Cmp, "'a>b' is only available for DistinctNumeric types with 'Cmp'.");
return this->m_value > other.m_value; return this->m_value > other.m_value;
} }
constexpr bool operator<(const Self& other) const constexpr bool operator<(Self const& other) const
{ {
static_assert(Cmp, "'a<b' is only available for DistinctNumeric types with 'Cmp'."); static_assert(Cmp, "'a<b' is only available for DistinctNumeric types with 'Cmp'.");
return this->m_value < other.m_value; return this->m_value < other.m_value;
} }
constexpr bool operator>=(const Self& other) const constexpr bool operator>=(Self const& other) const
{ {
static_assert(Cmp, "'a>=b' is only available for DistinctNumeric types with 'Cmp'."); static_assert(Cmp, "'a>=b' is only available for DistinctNumeric types with 'Cmp'.");
return this->m_value >= other.m_value; return this->m_value >= other.m_value;
} }
constexpr bool operator<=(const Self& other) const constexpr bool operator<=(Self const& other) const
{ {
static_assert(Cmp, "'a<=b' is only available for DistinctNumeric types with 'Cmp'."); static_assert(Cmp, "'a<=b' is only available for DistinctNumeric types with 'Cmp'.");
return this->m_value <= other.m_value; return this->m_value <= other.m_value;
@ -140,34 +140,34 @@ public:
static_assert(Flags, "'~a' is only available for DistinctNumeric types with 'Flags'."); static_assert(Flags, "'~a' is only available for DistinctNumeric types with 'Flags'.");
return ~this->m_value; return ~this->m_value;
} }
constexpr Self operator&(const Self& other) const constexpr Self operator&(Self const& other) const
{ {
static_assert(Flags, "'a&b' is only available for DistinctNumeric types with 'Flags'."); static_assert(Flags, "'a&b' is only available for DistinctNumeric types with 'Flags'.");
return this->m_value & other.m_value; return this->m_value & other.m_value;
} }
constexpr Self operator|(const Self& other) const constexpr Self operator|(Self const& other) const
{ {
static_assert(Flags, "'a|b' is only available for DistinctNumeric types with 'Flags'."); static_assert(Flags, "'a|b' is only available for DistinctNumeric types with 'Flags'.");
return this->m_value | other.m_value; return this->m_value | other.m_value;
} }
constexpr Self operator^(const Self& other) const constexpr Self operator^(Self const& other) const
{ {
static_assert(Flags, "'a^b' is only available for DistinctNumeric types with 'Flags'."); static_assert(Flags, "'a^b' is only available for DistinctNumeric types with 'Flags'.");
return this->m_value ^ other.m_value; return this->m_value ^ other.m_value;
} }
constexpr Self& operator&=(const Self& other) constexpr Self& operator&=(Self const& other)
{ {
static_assert(Flags, "'a&=b' is only available for DistinctNumeric types with 'Flags'."); static_assert(Flags, "'a&=b' is only available for DistinctNumeric types with 'Flags'.");
this->m_value &= other.m_value; this->m_value &= other.m_value;
return *this; return *this;
} }
constexpr Self& operator|=(const Self& other) constexpr Self& operator|=(Self const& other)
{ {
static_assert(Flags, "'a|=b' is only available for DistinctNumeric types with 'Flags'."); static_assert(Flags, "'a|=b' is only available for DistinctNumeric types with 'Flags'.");
this->m_value |= other.m_value; this->m_value |= other.m_value;
return *this; return *this;
} }
constexpr Self& operator^=(const Self& other) constexpr Self& operator^=(Self const& other)
{ {
static_assert(Flags, "'a^=b' is only available for DistinctNumeric types with 'Flags'."); static_assert(Flags, "'a^=b' is only available for DistinctNumeric types with 'Flags'.");
this->m_value ^= other.m_value; this->m_value ^= other.m_value;
@ -176,23 +176,23 @@ public:
// Only implemented when `Shift` is true: // Only implemented when `Shift` is true:
// TODO: Should this take `int` instead? // TODO: Should this take `int` instead?
constexpr Self operator<<(const Self& other) const constexpr Self operator<<(Self const& other) const
{ {
static_assert(Shift, "'a<<b' is only available for DistinctNumeric types with 'Shift'."); static_assert(Shift, "'a<<b' is only available for DistinctNumeric types with 'Shift'.");
return this->m_value << other.m_value; return this->m_value << other.m_value;
} }
constexpr Self operator>>(const Self& other) const constexpr Self operator>>(Self const& other) const
{ {
static_assert(Shift, "'a>>b' is only available for DistinctNumeric types with 'Shift'."); static_assert(Shift, "'a>>b' is only available for DistinctNumeric types with 'Shift'.");
return this->m_value >> other.m_value; return this->m_value >> other.m_value;
} }
constexpr Self& operator<<=(const Self& other) constexpr Self& operator<<=(Self const& other)
{ {
static_assert(Shift, "'a<<=b' is only available for DistinctNumeric types with 'Shift'."); static_assert(Shift, "'a<<=b' is only available for DistinctNumeric types with 'Shift'.");
this->m_value <<= other.m_value; this->m_value <<= other.m_value;
return *this; return *this;
} }
constexpr Self& operator>>=(const Self& other) constexpr Self& operator>>=(Self const& other)
{ {
static_assert(Shift, "'a>>=b' is only available for DistinctNumeric types with 'Shift'."); static_assert(Shift, "'a>>=b' is only available for DistinctNumeric types with 'Shift'.");
this->m_value >>= other.m_value; this->m_value >>= other.m_value;
@ -200,12 +200,12 @@ public:
} }
// Only implemented when `Arith` is true: // Only implemented when `Arith` is true:
constexpr Self operator+(const Self& other) const constexpr Self operator+(Self const& other) const
{ {
static_assert(Arith, "'a+b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a+b' is only available for DistinctNumeric types with 'Arith'.");
return this->m_value + other.m_value; return this->m_value + other.m_value;
} }
constexpr Self operator-(const Self& other) const constexpr Self operator-(Self const& other) const
{ {
static_assert(Arith, "'a-b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a-b' is only available for DistinctNumeric types with 'Arith'.");
return this->m_value - other.m_value; return this->m_value - other.m_value;
@ -220,46 +220,46 @@ public:
static_assert(Arith, "'-a' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'-a' is only available for DistinctNumeric types with 'Arith'.");
return -this->m_value; return -this->m_value;
} }
constexpr Self operator*(const Self& other) const constexpr Self operator*(Self const& other) const
{ {
static_assert(Arith, "'a*b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a*b' is only available for DistinctNumeric types with 'Arith'.");
return this->m_value * other.m_value; return this->m_value * other.m_value;
} }
constexpr Self operator/(const Self& other) const constexpr Self operator/(Self const& other) const
{ {
static_assert(Arith, "'a/b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a/b' is only available for DistinctNumeric types with 'Arith'.");
return this->m_value / other.m_value; return this->m_value / other.m_value;
} }
constexpr Self operator%(const Self& other) const constexpr Self operator%(Self const& other) const
{ {
static_assert(Arith, "'a%b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a%b' is only available for DistinctNumeric types with 'Arith'.");
return this->m_value % other.m_value; return this->m_value % other.m_value;
} }
constexpr Self& operator+=(const Self& other) constexpr Self& operator+=(Self const& other)
{ {
static_assert(Arith, "'a+=b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a+=b' is only available for DistinctNumeric types with 'Arith'.");
this->m_value += other.m_value; this->m_value += other.m_value;
return *this; return *this;
} }
constexpr Self& operator-=(const Self& other) constexpr Self& operator-=(Self const& other)
{ {
static_assert(Arith, "'a+=b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a+=b' is only available for DistinctNumeric types with 'Arith'.");
this->m_value += other.m_value; this->m_value += other.m_value;
return *this; return *this;
} }
constexpr Self& operator*=(const Self& other) constexpr Self& operator*=(Self const& other)
{ {
static_assert(Arith, "'a*=b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a*=b' is only available for DistinctNumeric types with 'Arith'.");
this->m_value *= other.m_value; this->m_value *= other.m_value;
return *this; return *this;
} }
constexpr Self& operator/=(const Self& other) constexpr Self& operator/=(Self const& other)
{ {
static_assert(Arith, "'a/=b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a/=b' is only available for DistinctNumeric types with 'Arith'.");
this->m_value /= other.m_value; this->m_value /= other.m_value;
return *this; return *this;
} }
constexpr Self& operator%=(const Self& other) constexpr Self& operator%=(Self const& other)
{ {
static_assert(Arith, "'a%=b' is only available for DistinctNumeric types with 'Arith'."); static_assert(Arith, "'a%=b' is only available for DistinctNumeric types with 'Arith'.");
this->m_value %= other.m_value; this->m_value %= other.m_value;
@ -292,7 +292,7 @@ struct Formatter<DistinctNumeric<T, X, Incr, Cmp, Bool, Flags, Shift, Arith>> :
template<typename T, typename X, auto... Args> template<typename T, typename X, auto... Args>
struct Traits<AK::DistinctNumeric<T, X, Args...>> : public GenericTraits<AK::DistinctNumeric<T, X, Args...>> { struct Traits<AK::DistinctNumeric<T, X, Args...>> : public GenericTraits<AK::DistinctNumeric<T, X, Args...>> {
static constexpr bool is_trivial() { return true; } static constexpr bool is_trivial() { return true; }
static constexpr auto hash(const DistinctNumeric<T, X, Args...>& d) { return Traits<T>::hash(d.value()); } static constexpr auto hash(DistinctNumeric<T, X, Args...> const& d) { return Traits<T>::hash(d.value()); }
}; };
using AK::DistinctNumeric; using AK::DistinctNumeric;

View file

@ -15,8 +15,8 @@ namespace AK {
template<typename ListType, typename ElementType> template<typename ListType, typename ElementType>
class DoublyLinkedListIterator { class DoublyLinkedListIterator {
public: public:
bool operator!=(const DoublyLinkedListIterator& other) const { return m_node != other.m_node; } bool operator!=(DoublyLinkedListIterator const& other) const { return m_node != other.m_node; }
bool operator==(const DoublyLinkedListIterator& other) const { return m_node == other.m_node; } bool operator==(DoublyLinkedListIterator const& other) const { return m_node == other.m_node; }
DoublyLinkedListIterator& operator++() DoublyLinkedListIterator& operator++()
{ {
m_node = m_node->next; m_node = m_node->next;

View file

@ -89,7 +89,7 @@ template<typename T>
class [[gnu::packed]] LittleEndian { class [[gnu::packed]] LittleEndian {
public: public:
friend InputStream& operator>><T>(InputStream&, LittleEndian<T>&); friend InputStream& operator>><T>(InputStream&, LittleEndian<T>&);
friend OutputStream& operator<<<T>(OutputStream&, LittleEndian<T>); friend OutputStream& operator<< <T>(OutputStream&, LittleEndian<T>);
constexpr LittleEndian() = default; constexpr LittleEndian() = default;
@ -117,7 +117,7 @@ template<typename T>
class [[gnu::packed]] BigEndian { class [[gnu::packed]] BigEndian {
public: public:
friend InputStream& operator>><T>(InputStream&, BigEndian<T>&); friend InputStream& operator>><T>(InputStream&, BigEndian<T>&);
friend OutputStream& operator<<<T>(OutputStream&, BigEndian<T>); friend OutputStream& operator<< <T>(OutputStream&, BigEndian<T>);
constexpr BigEndian() = default; constexpr BigEndian() = default;

View file

@ -55,7 +55,7 @@ public:
// the compiler will inline this anyway and therefore not generate any duplicate code. // the compiler will inline this anyway and therefore not generate any duplicate code.
template<size_t N> template<size_t N>
static ErrorOr<FixedArray<T>> try_create(T(&&array)[N]) static ErrorOr<FixedArray<T>> try_create(T (&&array)[N])
{ {
if (N == 0) if (N == 0)
return FixedArray<T>(); return FixedArray<T>();

View file

@ -15,8 +15,8 @@
namespace AK { namespace AK {
struct FlyStringImplTraits : public Traits<StringImpl*> { struct FlyStringImplTraits : public Traits<StringImpl*> {
static unsigned hash(const StringImpl* s) { return s ? s->hash() : 0; } static unsigned hash(StringImpl const* s) { return s ? s->hash() : 0; }
static bool equals(const StringImpl* a, const StringImpl* b) static bool equals(StringImpl const* a, StringImpl const* b)
{ {
VERIFY(a); VERIFY(a);
VERIFY(b); VERIFY(b);
@ -36,7 +36,7 @@ void FlyString::did_destroy_impl(Badge<StringImpl>, StringImpl& impl)
fly_impls().remove(&impl); fly_impls().remove(&impl);
} }
FlyString::FlyString(const String& string) FlyString::FlyString(String const& string)
{ {
if (string.is_null()) if (string.is_null())
return; return;
@ -115,7 +115,7 @@ FlyString FlyString::to_lowercase() const
return String(*m_impl).to_lowercase(); return String(*m_impl).to_lowercase();
} }
bool FlyString::operator==(const String& other) const bool FlyString::operator==(String const& other) const
{ {
return m_impl == other.impl() || view() == other.view(); return m_impl == other.impl() || view() == other.view();
} }
@ -125,7 +125,7 @@ bool FlyString::operator==(StringView string) const
return view() == string; return view() == string;
} }
bool FlyString::operator==(const char* string) const bool FlyString::operator==(char const* string) const
{ {
return view() == string; return view() == string;
} }

View file

@ -14,7 +14,7 @@ namespace AK {
class FlyString { class FlyString {
public: public:
FlyString() = default; FlyString() = default;
FlyString(const FlyString& other) FlyString(FlyString const& other)
: m_impl(other.impl()) : m_impl(other.impl())
{ {
} }
@ -22,9 +22,9 @@ public:
: m_impl(move(other.m_impl)) : m_impl(move(other.m_impl))
{ {
} }
FlyString(const String&); FlyString(String const&);
FlyString(StringView); FlyString(StringView);
FlyString(const char* string) FlyString(char const* string)
: FlyString(static_cast<String>(string)) : FlyString(static_cast<String>(string))
{ {
} }
@ -37,7 +37,7 @@ public:
return string; return string;
} }
FlyString& operator=(const FlyString& other) FlyString& operator=(FlyString const& other)
{ {
m_impl = other.m_impl; m_impl = other.m_impl;
return *this; return *this;
@ -52,20 +52,20 @@ public:
bool is_empty() const { return !m_impl || !m_impl->length(); } bool is_empty() const { return !m_impl || !m_impl->length(); }
bool is_null() const { return !m_impl; } bool is_null() const { return !m_impl; }
bool operator==(const FlyString& other) const { return m_impl == other.m_impl; } bool operator==(FlyString const& other) const { return m_impl == other.m_impl; }
bool operator!=(const FlyString& other) const { return m_impl != other.m_impl; } bool operator!=(FlyString const& other) const { return m_impl != other.m_impl; }
bool operator==(const String&) const; bool operator==(String const&) const;
bool operator!=(const String& string) const { return !(*this == string); } bool operator!=(String const& string) const { return !(*this == string); }
bool operator==(StringView) const; bool operator==(StringView) const;
bool operator!=(StringView string) const { return !(*this == string); } bool operator!=(StringView string) const { return !(*this == string); }
bool operator==(const char*) const; bool operator==(char const*) const;
bool operator!=(const char* string) const { return !(*this == string); } bool operator!=(char const* string) const { return !(*this == string); }
const StringImpl* impl() const { return m_impl; } StringImpl const* impl() const { return m_impl; }
const char* characters() const { return m_impl ? m_impl->characters() : nullptr; } char const* characters() const { return m_impl ? m_impl->characters() : nullptr; }
size_t length() const { return m_impl ? m_impl->length() : 0; } size_t length() const { return m_impl ? m_impl->length() : 0; }
ALWAYS_INLINE u32 hash() const { return m_impl ? m_impl->existing_hash() : 0; } ALWAYS_INLINE u32 hash() const { return m_impl ? m_impl->existing_hash() : 0; }
@ -96,7 +96,7 @@ private:
template<> template<>
struct Traits<FlyString> : public GenericTraits<FlyString> { struct Traits<FlyString> : public GenericTraits<FlyString> {
static unsigned hash(const FlyString& s) { return s.hash(); } static unsigned hash(FlyString const& s) { return s.hash(); }
}; };
} }

View file

@ -51,8 +51,8 @@ static constexpr size_t convert_unsigned_to_string(u64 value, Array<u8, 128>& bu
{ {
VERIFY(base >= 2 && base <= 16); VERIFY(base >= 2 && base <= 16);
constexpr const char* lowercase_lookup = "0123456789abcdef"; constexpr char const* lowercase_lookup = "0123456789abcdef";
constexpr const char* uppercase_lookup = "0123456789ABCDEF"; constexpr char const* uppercase_lookup = "0123456789ABCDEF";
if (value == 0) { if (value == 0) {
buffer[0] = '0'; buffer[0] = '0';
@ -77,7 +77,7 @@ static constexpr size_t convert_unsigned_to_string(u64 value, Array<u8, 128>& bu
ErrorOr<void> vformat_impl(TypeErasedFormatParams& params, FormatBuilder& builder, FormatParser& parser) ErrorOr<void> vformat_impl(TypeErasedFormatParams& params, FormatBuilder& builder, FormatParser& parser)
{ {
const auto literal = parser.consume_literal(); auto const literal = parser.consume_literal();
TRY(builder.put_literal(literal)); TRY(builder.put_literal(literal));
FormatParser::FormatSpecifier specifier; FormatParser::FormatSpecifier specifier;
@ -105,7 +105,7 @@ FormatParser::FormatParser(StringView input)
} }
StringView FormatParser::consume_literal() StringView FormatParser::consume_literal()
{ {
const auto begin = tell(); auto const begin = tell();
while (!is_eof()) { while (!is_eof()) {
if (consume_specific("{{")) if (consume_specific("{{"))
@ -146,7 +146,7 @@ bool FormatParser::consume_specifier(FormatSpecifier& specifier)
specifier.index = use_next_index; specifier.index = use_next_index;
if (consume_specific(':')) { if (consume_specific(':')) {
const auto begin = tell(); auto const begin = tell();
size_t level = 1; size_t level = 1;
while (level > 0) { while (level > 0) {
@ -212,8 +212,8 @@ ErrorOr<void> FormatBuilder::put_string(
size_t max_width, size_t max_width,
char fill) char fill)
{ {
const auto used_by_string = min(max_width, value.length()); auto const used_by_string = min(max_width, value.length());
const auto used_by_padding = max(min_width, used_by_string) - used_by_string; auto const used_by_padding = max(min_width, used_by_string) - used_by_string;
if (used_by_string < value.length()) if (used_by_string < value.length())
value = value.substring_view(0, used_by_string); value = value.substring_view(0, used_by_string);
@ -222,8 +222,8 @@ ErrorOr<void> FormatBuilder::put_string(
TRY(m_builder.try_append(value)); TRY(m_builder.try_append(value));
TRY(put_padding(fill, used_by_padding)); TRY(put_padding(fill, used_by_padding));
} else if (align == Align::Center) { } else if (align == Align::Center) {
const auto used_by_left_padding = used_by_padding / 2; auto const used_by_left_padding = used_by_padding / 2;
const auto used_by_right_padding = ceil_div<size_t, size_t>(used_by_padding, 2); auto const used_by_right_padding = ceil_div<size_t, size_t>(used_by_padding, 2);
TRY(put_padding(fill, used_by_left_padding)); TRY(put_padding(fill, used_by_left_padding));
TRY(m_builder.try_append(value)); TRY(m_builder.try_append(value));
@ -252,7 +252,7 @@ ErrorOr<void> FormatBuilder::put_u64(
Array<u8, 128> buffer; Array<u8, 128> buffer;
const auto used_by_digits = convert_unsigned_to_string(value, buffer, base, upper_case); auto const used_by_digits = convert_unsigned_to_string(value, buffer, base, upper_case);
size_t used_by_prefix = 0; size_t used_by_prefix = 0;
if (align == Align::Right && zero_pad) { if (align == Align::Right && zero_pad) {
@ -273,10 +273,10 @@ ErrorOr<void> FormatBuilder::put_u64(
} }
} }
const auto used_by_field = used_by_prefix + used_by_digits; auto const used_by_field = used_by_prefix + used_by_digits;
const auto used_by_padding = max(used_by_field, min_width) - used_by_field; auto const used_by_padding = max(used_by_field, min_width) - used_by_field;
const auto put_prefix = [&]() -> ErrorOr<void> { auto const put_prefix = [&]() -> ErrorOr<void> {
if (is_negative) if (is_negative)
TRY(m_builder.try_append('-')); TRY(m_builder.try_append('-'));
else if (sign_mode == SignMode::Always) else if (sign_mode == SignMode::Always)
@ -302,28 +302,28 @@ ErrorOr<void> FormatBuilder::put_u64(
return {}; return {};
}; };
const auto put_digits = [&]() -> ErrorOr<void> { auto const put_digits = [&]() -> ErrorOr<void> {
for (size_t i = 0; i < used_by_digits; ++i) for (size_t i = 0; i < used_by_digits; ++i)
TRY(m_builder.try_append(buffer[i])); TRY(m_builder.try_append(buffer[i]));
return {}; return {};
}; };
if (align == Align::Left) { if (align == Align::Left) {
const auto used_by_right_padding = used_by_padding; auto const used_by_right_padding = used_by_padding;
TRY(put_prefix()); TRY(put_prefix());
TRY(put_digits()); TRY(put_digits());
TRY(put_padding(fill, used_by_right_padding)); TRY(put_padding(fill, used_by_right_padding));
} else if (align == Align::Center) { } else if (align == Align::Center) {
const auto used_by_left_padding = used_by_padding / 2; auto const used_by_left_padding = used_by_padding / 2;
const auto used_by_right_padding = ceil_div<size_t, size_t>(used_by_padding, 2); auto const used_by_right_padding = ceil_div<size_t, size_t>(used_by_padding, 2);
TRY(put_padding(fill, used_by_left_padding)); TRY(put_padding(fill, used_by_left_padding));
TRY(put_prefix()); TRY(put_prefix());
TRY(put_digits()); TRY(put_digits());
TRY(put_padding(fill, used_by_right_padding)); TRY(put_padding(fill, used_by_right_padding));
} else if (align == Align::Right) { } else if (align == Align::Right) {
const auto used_by_left_padding = used_by_padding; auto const used_by_left_padding = used_by_padding;
if (zero_pad) { if (zero_pad) {
TRY(put_prefix()); TRY(put_prefix());
@ -349,7 +349,7 @@ ErrorOr<void> FormatBuilder::put_i64(
char fill, char fill,
SignMode sign_mode) SignMode sign_mode)
{ {
const auto is_negative = value < 0; auto const is_negative = value < 0;
value = is_negative ? -value : value; value = is_negative ? -value : value;
TRY(put_u64(static_cast<u64>(value), base, prefix, upper_case, zero_pad, align, min_width, fill, sign_mode, is_negative)); TRY(put_u64(static_cast<u64>(value), base, prefix, upper_case, zero_pad, align, min_width, fill, sign_mode, is_negative));
@ -702,7 +702,7 @@ ErrorOr<void> Formatter<T>::format(FormatBuilder& builder, T value)
m_mode = Mode::String; m_mode = Mode::String;
Formatter<StringView> formatter { *this }; Formatter<StringView> formatter { *this };
return formatter.format(builder, StringView { reinterpret_cast<const char*>(&value), 1 }); return formatter.format(builder, StringView { reinterpret_cast<char const*>(&value), 1 });
} }
if (m_precision.has_value()) if (m_precision.has_value())
@ -854,8 +854,8 @@ void vout(FILE* file, StringView fmtstr, TypeErasedFormatParams& params, bool ne
if (newline) if (newline)
builder.append('\n'); builder.append('\n');
const auto string = builder.string_view(); auto const string = builder.string_view();
const auto retval = ::fwrite(string.characters_without_null_termination(), 1, string.length(), file); auto const retval = ::fwrite(string.characters_without_null_termination(), 1, string.length(), file);
if (static_cast<size_t>(retval) != string.length()) { if (static_cast<size_t>(retval) != string.length()) {
auto error = ferror(file); auto error = ferror(file);
dbgln("vout() failed ({} written out of {}), error was {} ({})", retval, string.length(), error, strerror(error)); dbgln("vout() failed ({} written out of {}), error was {} ({})", retval, string.length(), error, strerror(error));
@ -912,7 +912,7 @@ void vdbgln(StringView fmtstr, TypeErasedFormatParams& params)
MUST(vformat(builder, fmtstr, params)); MUST(vformat(builder, fmtstr, params));
builder.append('\n'); builder.append('\n');
const auto string = builder.string_view(); auto const string = builder.string_view();
#ifdef __serenity__ #ifdef __serenity__
# ifdef KERNEL # ifdef KERNEL
@ -949,7 +949,7 @@ void vdmesgln(StringView fmtstr, TypeErasedFormatParams& params)
MUST(vformat(builder, fmtstr, params)); MUST(vformat(builder, fmtstr, params));
builder.append('\n'); builder.append('\n');
const auto string = builder.string_view(); auto const string = builder.string_view();
kernelputstr(string.characters_without_null_termination(), string.length()); kernelputstr(string.characters_without_null_termination(), string.length());
} }
@ -971,7 +971,7 @@ void v_critical_dmesgln(StringView fmtstr, TypeErasedFormatParams& params)
MUST(vformat(builder, fmtstr, params)); MUST(vformat(builder, fmtstr, params));
builder.append('\n'); builder.append('\n');
const auto string = builder.string_view(); auto const string = builder.string_view();
kernelcriticalputstr(string.characters_without_null_termination(), string.length()); kernelcriticalputstr(string.characters_without_null_termination(), string.length());
} }

View file

@ -94,21 +94,21 @@ struct TypeErasedParameter {
{ {
switch (type) { switch (type) {
case TypeErasedParameter::Type::UInt8: case TypeErasedParameter::Type::UInt8:
return visitor(*static_cast<const u8*>(value)); return visitor(*static_cast<u8 const*>(value));
case TypeErasedParameter::Type::UInt16: case TypeErasedParameter::Type::UInt16:
return visitor(*static_cast<const u16*>(value)); return visitor(*static_cast<u16 const*>(value));
case TypeErasedParameter::Type::UInt32: case TypeErasedParameter::Type::UInt32:
return visitor(*static_cast<const u32*>(value)); return visitor(*static_cast<u32 const*>(value));
case TypeErasedParameter::Type::UInt64: case TypeErasedParameter::Type::UInt64:
return visitor(*static_cast<const u64*>(value)); return visitor(*static_cast<u64 const*>(value));
case TypeErasedParameter::Type::Int8: case TypeErasedParameter::Type::Int8:
return visitor(*static_cast<const i8*>(value)); return visitor(*static_cast<i8 const*>(value));
case TypeErasedParameter::Type::Int16: case TypeErasedParameter::Type::Int16:
return visitor(*static_cast<const i16*>(value)); return visitor(*static_cast<i16 const*>(value));
case TypeErasedParameter::Type::Int32: case TypeErasedParameter::Type::Int32:
return visitor(*static_cast<const i32*>(value)); return visitor(*static_cast<i32 const*>(value));
case TypeErasedParameter::Type::Int64: case TypeErasedParameter::Type::Int64:
return visitor(*static_cast<const i64*>(value)); return visitor(*static_cast<i64 const*>(value));
default: default:
TODO(); TODO();
} }
@ -127,7 +127,7 @@ struct TypeErasedParameter {
// FIXME: Getters and setters. // FIXME: Getters and setters.
const void* value; void const* value;
Type type; Type type;
ErrorOr<void> (*formatter)(TypeErasedFormatParams&, FormatBuilder&, FormatParser&, void const* value); ErrorOr<void> (*formatter)(TypeErasedFormatParams&, FormatBuilder&, FormatParser&, void const* value);
}; };
@ -227,7 +227,7 @@ public:
size_t width, size_t width,
char fill = ' '); char fill = ' ');
const StringBuilder& builder() const StringBuilder const& builder() const
{ {
return m_builder; return m_builder;
} }
@ -250,7 +250,7 @@ private:
}; };
template<typename T> template<typename T>
ErrorOr<void> __format_value(TypeErasedFormatParams& params, FormatBuilder& builder, FormatParser& parser, const void* value) ErrorOr<void> __format_value(TypeErasedFormatParams& params, FormatBuilder& builder, FormatParser& parser, void const* value)
{ {
Formatter<T> formatter; Formatter<T> formatter;
@ -263,7 +263,7 @@ class VariadicFormatParams : public TypeErasedFormatParams {
public: public:
static_assert(sizeof...(Parameters) <= max_format_arguments); static_assert(sizeof...(Parameters) <= max_format_arguments);
explicit VariadicFormatParams(const Parameters&... parameters) explicit VariadicFormatParams(Parameters const&... parameters)
: m_data({ TypeErasedParameter { &parameters, TypeErasedParameter::get_type<Parameters>(), __format_value<Parameters> }... }) : m_data({ TypeErasedParameter { &parameters, TypeErasedParameter::get_type<Parameters>(), __format_value<Parameters> }... })
{ {
this->set_parameters(m_data); this->set_parameters(m_data);
@ -396,8 +396,8 @@ struct Formatter<Bytes> : Formatter<ReadonlyBytes> {
}; };
template<> template<>
struct Formatter<const char*> : Formatter<StringView> { struct Formatter<char const*> : Formatter<StringView> {
ErrorOr<void> format(FormatBuilder& builder, const char* value) ErrorOr<void> format(FormatBuilder& builder, char const* value)
{ {
if (m_mode == Mode::Pointer) { if (m_mode == Mode::Pointer) {
Formatter<FlatPtr> formatter { *this }; Formatter<FlatPtr> formatter { *this };
@ -407,14 +407,14 @@ struct Formatter<const char*> : Formatter<StringView> {
} }
}; };
template<> template<>
struct Formatter<char*> : Formatter<const char*> { struct Formatter<char*> : Formatter<char const*> {
}; };
template<size_t Size> template<size_t Size>
struct Formatter<char[Size]> : Formatter<const char*> { struct Formatter<char[Size]> : Formatter<char const*> {
}; };
template<size_t Size> template<size_t Size>
struct Formatter<unsigned char[Size]> : Formatter<StringView> { struct Formatter<unsigned char[Size]> : Formatter<StringView> {
ErrorOr<void> format(FormatBuilder& builder, const unsigned char* value) ErrorOr<void> format(FormatBuilder& builder, unsigned char const* value)
{ {
if (m_mode == Mode::Pointer) { if (m_mode == Mode::Pointer) {
Formatter<FlatPtr> formatter { *this }; Formatter<FlatPtr> formatter { *this };
@ -535,14 +535,14 @@ ErrorOr<void> vformat(StringBuilder&, StringView fmtstr, TypeErasedFormatParams&
void vout(FILE*, StringView fmtstr, TypeErasedFormatParams&, bool newline = false); void vout(FILE*, StringView fmtstr, TypeErasedFormatParams&, bool newline = false);
template<typename... Parameters> template<typename... Parameters>
void out(FILE* file, CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) void out(FILE* file, CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters)
{ {
VariadicFormatParams variadic_format_params { parameters... }; VariadicFormatParams variadic_format_params { parameters... };
vout(file, fmtstr.view(), variadic_format_params); vout(file, fmtstr.view(), variadic_format_params);
} }
template<typename... Parameters> template<typename... Parameters>
void outln(FILE* file, CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) void outln(FILE* file, CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters)
{ {
VariadicFormatParams variadic_format_params { parameters... }; VariadicFormatParams variadic_format_params { parameters... };
vout(file, fmtstr.view(), variadic_format_params, true); vout(file, fmtstr.view(), variadic_format_params, true);
@ -551,10 +551,10 @@ void outln(FILE* file, CheckedFormatString<Parameters...>&& fmtstr, const Parame
inline void outln(FILE* file) { fputc('\n', file); } inline void outln(FILE* file) { fputc('\n', file); }
template<typename... Parameters> template<typename... Parameters>
void out(CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) { out(stdout, move(fmtstr), parameters...); } void out(CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters) { out(stdout, move(fmtstr), parameters...); }
template<typename... Parameters> template<typename... Parameters>
void outln(CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) { outln(stdout, move(fmtstr), parameters...); } void outln(CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters) { outln(stdout, move(fmtstr), parameters...); }
inline void outln() { outln(stdout); } inline void outln() { outln(stdout); }
@ -565,13 +565,13 @@ inline void outln() { outln(stdout); }
} while (0) } while (0)
template<typename... Parameters> template<typename... Parameters>
void warn(CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) void warn(CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters)
{ {
out(stderr, move(fmtstr), parameters...); out(stderr, move(fmtstr), parameters...);
} }
template<typename... Parameters> template<typename... Parameters>
void warnln(CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) { outln(stderr, move(fmtstr), parameters...); } void warnln(CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters) { outln(stderr, move(fmtstr), parameters...); }
inline void warnln() { outln(stderr); } inline void warnln() { outln(stderr); }
@ -586,7 +586,7 @@ inline void warnln() { outln(stderr); }
void vdbgln(StringView fmtstr, TypeErasedFormatParams&); void vdbgln(StringView fmtstr, TypeErasedFormatParams&);
template<typename... Parameters> template<typename... Parameters>
void dbgln(CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) void dbgln(CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters)
{ {
VariadicFormatParams variadic_format_params { parameters... }; VariadicFormatParams variadic_format_params { parameters... };
vdbgln(fmtstr.view(), variadic_format_params); vdbgln(fmtstr.view(), variadic_format_params);
@ -600,7 +600,7 @@ void set_debug_enabled(bool);
void vdmesgln(StringView fmtstr, TypeErasedFormatParams&); void vdmesgln(StringView fmtstr, TypeErasedFormatParams&);
template<typename... Parameters> template<typename... Parameters>
void dmesgln(CheckedFormatString<Parameters...>&& fmt, const Parameters&... parameters) void dmesgln(CheckedFormatString<Parameters...>&& fmt, Parameters const&... parameters)
{ {
VariadicFormatParams variadic_format_params { parameters... }; VariadicFormatParams variadic_format_params { parameters... };
vdmesgln(fmt.view(), variadic_format_params); vdmesgln(fmt.view(), variadic_format_params);
@ -611,7 +611,7 @@ void v_critical_dmesgln(StringView fmtstr, TypeErasedFormatParams&);
// be very careful to not cause any allocations here, since we could be in // be very careful to not cause any allocations here, since we could be in
// a very unstable situation // a very unstable situation
template<typename... Parameters> template<typename... Parameters>
void critical_dmesgln(CheckedFormatString<Parameters...>&& fmt, const Parameters&... parameters) void critical_dmesgln(CheckedFormatString<Parameters...>&& fmt, Parameters const&... parameters)
{ {
VariadicFormatParams variadic_format_params { parameters... }; VariadicFormatParams variadic_format_params { parameters... };
v_critical_dmesgln(fmt.view(), variadic_format_params); v_critical_dmesgln(fmt.view(), variadic_format_params);
@ -656,7 +656,7 @@ struct FormatString {
template<> template<>
struct Formatter<FormatString> : Formatter<StringView> { struct Formatter<FormatString> : Formatter<StringView> {
template<typename... Parameters> template<typename... Parameters>
ErrorOr<void> format(FormatBuilder& builder, StringView fmtstr, const Parameters&... parameters) ErrorOr<void> format(FormatBuilder& builder, StringView fmtstr, Parameters const&... parameters)
{ {
VariadicFormatParams variadic_format_params { parameters... }; VariadicFormatParams variadic_format_params { parameters... };
return vformat(builder, fmtstr, variadic_format_params); return vformat(builder, fmtstr, variadic_format_params);

View file

@ -69,7 +69,7 @@ StringView GenericLexer::consume_until(char stop)
} }
// Consume and return characters until the string `stop` is found // Consume and return characters until the string `stop` is found
StringView GenericLexer::consume_until(const char* stop) StringView GenericLexer::consume_until(char const* stop)
{ {
size_t start = m_index; size_t start = m_index;
while (!is_eof() && !next_is(stop)) while (!is_eof() && !next_is(stop))

View file

@ -43,7 +43,7 @@ public:
return true; return true;
} }
constexpr bool next_is(const char* expected) const constexpr bool next_is(char const* expected) const
{ {
for (size_t i = 0; expected[i] != '\0'; ++i) for (size_t i = 0; expected[i] != '\0'; ++i)
if (peek(i) != expected[i]) if (peek(i) != expected[i])
@ -84,13 +84,13 @@ public:
} }
#ifndef KERNEL #ifndef KERNEL
bool consume_specific(const String& next) bool consume_specific(String const& next)
{ {
return consume_specific(StringView { next }); return consume_specific(StringView { next });
} }
#endif #endif
constexpr bool consume_specific(const char* next) constexpr bool consume_specific(char const* next)
{ {
return consume_specific(StringView { next }); return consume_specific(StringView { next });
} }
@ -114,7 +114,7 @@ public:
StringView consume_all(); StringView consume_all();
StringView consume_line(); StringView consume_line();
StringView consume_until(char); StringView consume_until(char);
StringView consume_until(const char*); StringView consume_until(char const*);
StringView consume_until(StringView); StringView consume_until(StringView);
StringView consume_quoted_string(char escape_char = 0); StringView consume_quoted_string(char escape_char = 0);
#ifndef KERNEL #ifndef KERNEL
@ -144,7 +144,7 @@ public:
ignore(); ignore();
} }
constexpr void ignore_until(const char* stop) constexpr void ignore_until(char const* stop)
{ {
while (!is_eof() && !next_is(stop)) { while (!is_eof() && !next_is(stop)) {
++m_index; ++m_index;

View file

@ -21,7 +21,7 @@ constexpr unsigned int_hash(u32 key)
constexpr unsigned double_hash(u32 key) constexpr unsigned double_hash(u32 key)
{ {
const unsigned magic = 0xBA5EDB01; unsigned const magic = 0xBA5EDB01;
if (key == magic) if (key == magic)
return 0u; return 0u;
if (key == 0u) if (key == 0u)
@ -53,7 +53,7 @@ constexpr unsigned ptr_hash(FlatPtr ptr)
return int_hash(ptr); return int_hash(ptr);
} }
inline unsigned ptr_hash(const void* ptr) inline unsigned ptr_hash(void const* ptr)
{ {
return ptr_hash(FlatPtr(ptr)); return ptr_hash(FlatPtr(ptr));
} }

View file

@ -22,8 +22,8 @@ private:
}; };
struct EntryTraits { struct EntryTraits {
static unsigned hash(const Entry& entry) { return KeyTraits::hash(entry.key); } static unsigned hash(Entry const& entry) { return KeyTraits::hash(entry.key); }
static bool equals(const Entry& a, const Entry& b) { return KeyTraits::equals(a.key, b.key); } static bool equals(Entry const& a, Entry const& b) { return KeyTraits::equals(a.key, b.key); }
}; };
public: public:
@ -152,7 +152,8 @@ public:
} }
template<Concepts::HashCompatible<K> Key> template<Concepts::HashCompatible<K> Key>
requires(IsSame<KeyTraits, Traits<K>>) Optional<typename Traits<V>::PeekType> get(const Key& key) const requires(!IsPointer<typename Traits<V>::PeekType>) requires(IsSame<KeyTraits, Traits<K>>) Optional<typename Traits<V>::PeekType> get(Key const& key)
const requires(!IsPointer<typename Traits<V>::PeekType>)
{ {
auto it = find(key); auto it = find(key);
if (it == end()) if (it == end())
@ -161,7 +162,8 @@ public:
} }
template<Concepts::HashCompatible<K> Key> template<Concepts::HashCompatible<K> Key>
requires(IsSame<KeyTraits, Traits<K>>) Optional<typename Traits<V>::ConstPeekType> get(const Key& key) const requires(IsPointer<typename Traits<V>::PeekType>) requires(IsSame<KeyTraits, Traits<K>>) Optional<typename Traits<V>::ConstPeekType> get(Key const& key)
const requires(IsPointer<typename Traits<V>::PeekType>)
{ {
auto it = find(key); auto it = find(key);
if (it == end()) if (it == end())
@ -170,7 +172,8 @@ public:
} }
template<Concepts::HashCompatible<K> Key> template<Concepts::HashCompatible<K> Key>
requires(IsSame<KeyTraits, Traits<K>>) Optional<typename Traits<V>::PeekType> get(const Key& key) requires(!IsConst<typename Traits<V>::PeekType>) requires(IsSame<KeyTraits, Traits<K>>) Optional<typename Traits<V>::PeekType> get(Key const& key)
requires(!IsConst<typename Traits<V>::PeekType>)
{ {
auto it = find(key); auto it = find(key);
if (it == end()) if (it == end())

View file

@ -57,8 +57,8 @@ class HashTableIterator {
friend HashTableType; friend HashTableType;
public: public:
bool operator==(const HashTableIterator& other) const { return m_bucket == other.m_bucket; } bool operator==(HashTableIterator const& other) const { return m_bucket == other.m_bucket; }
bool operator!=(const HashTableIterator& other) const { return m_bucket != other.m_bucket; } bool operator!=(HashTableIterator const& other) const { return m_bucket != other.m_bucket; }
T& operator*() { return *m_bucket->slot(); } T& operator*() { return *m_bucket->slot(); }
T* operator->() { return m_bucket->slot(); } T* operator->() { return m_bucket->slot(); }
void operator++() { skip_to_next(); } void operator++() { skip_to_next(); }
@ -90,8 +90,8 @@ class OrderedHashTableIterator {
friend OrderedHashTableType; friend OrderedHashTableType;
public: public:
bool operator==(const OrderedHashTableIterator& other) const { return m_bucket == other.m_bucket; } bool operator==(OrderedHashTableIterator const& other) const { return m_bucket == other.m_bucket; }
bool operator!=(const OrderedHashTableIterator& other) const { return m_bucket != other.m_bucket; } bool operator!=(OrderedHashTableIterator const& other) const { return m_bucket != other.m_bucket; }
T& operator*() { return *m_bucket->slot(); } T& operator*() { return *m_bucket->slot(); }
T* operator->() { return m_bucket->slot(); } T* operator->() { return m_bucket->slot(); }
void operator++() { m_bucket = m_bucket->next; } void operator++() { m_bucket = m_bucket->next; }
@ -156,14 +156,14 @@ public:
kfree_sized(m_buckets, size_in_bytes(m_capacity)); kfree_sized(m_buckets, size_in_bytes(m_capacity));
} }
HashTable(const HashTable& other) HashTable(HashTable const& other)
{ {
rehash(other.capacity()); rehash(other.capacity());
for (auto& it : other) for (auto& it : other)
set(it); set(it);
} }
HashTable& operator=(const HashTable& other) HashTable& operator=(HashTable const& other)
{ {
HashTable temporary(other); HashTable temporary(other);
swap(*this, temporary); swap(*this, temporary);

View file

@ -21,11 +21,11 @@ ErrorOr<ByteBuffer> decode_hex(StringView input)
auto output = TRY(ByteBuffer::create_zeroed(input.length() / 2)); auto output = TRY(ByteBuffer::create_zeroed(input.length() / 2));
for (size_t i = 0; i < input.length() / 2; ++i) { for (size_t i = 0; i < input.length() / 2; ++i) {
const auto c1 = decode_hex_digit(input[i * 2]); auto const c1 = decode_hex_digit(input[i * 2]);
if (c1 >= 16) if (c1 >= 16)
return Error::from_string_literal("Hex string contains invalid digit"); return Error::from_string_literal("Hex string contains invalid digit");
const auto c2 = decode_hex_digit(input[i * 2 + 1]); auto const c2 = decode_hex_digit(input[i * 2 + 1]);
if (c2 >= 16) if (c2 >= 16)
return Error::from_string_literal("Hex string contains invalid digit"); return Error::from_string_literal("Hex string contains invalid digit");

View file

@ -89,7 +89,7 @@ public:
if (string.is_null()) if (string.is_null())
return {}; return {};
const auto parts = string.split_view('.'); auto const parts = string.split_view('.');
u32 a {}; u32 a {};
u32 b {}; u32 b {};
@ -122,8 +122,8 @@ public:
constexpr in_addr_t to_in_addr_t() const { return m_data; } constexpr in_addr_t to_in_addr_t() const { return m_data; }
constexpr u32 to_u32() const { return m_data; } constexpr u32 to_u32() const { return m_data; }
constexpr bool operator==(const IPv4Address& other) const = default; constexpr bool operator==(IPv4Address const& other) const = default;
constexpr bool operator!=(const IPv4Address& other) const = default; constexpr bool operator!=(IPv4Address const& other) const = default;
constexpr bool is_zero() const constexpr bool is_zero() const
{ {
@ -135,7 +135,7 @@ private:
{ {
NetworkOrdered<u32> address(m_data); NetworkOrdered<u32> address(m_data);
constexpr auto bits_per_byte = 8; constexpr auto bits_per_byte = 8;
const auto bits_to_shift = bits_per_byte * int(subnet); auto const bits_to_shift = bits_per_byte * int(subnet);
return (m_data >> bits_to_shift) & 0x0000'00FF; return (m_data >> bits_to_shift) & 0x0000'00FF;
} }
@ -146,7 +146,7 @@ static_assert(sizeof(IPv4Address) == 4);
template<> template<>
struct Traits<IPv4Address> : public GenericTraits<IPv4Address> { struct Traits<IPv4Address> : public GenericTraits<IPv4Address> {
static constexpr unsigned hash(const IPv4Address& address) { return int_hash(address.to_u32()); } static constexpr unsigned hash(IPv4Address const& address) { return int_hash(address.to_u32()); }
}; };
#ifdef KERNEL #ifdef KERNEL

View file

@ -75,8 +75,8 @@ public:
auto operator->() const { return m_value; } auto operator->() const { return m_value; }
T& operator*() { return *m_value; } T& operator*() { return *m_value; }
auto operator->() { return m_value; } auto operator->() { return m_value; }
bool operator==(const Iterator& other) const { return other.m_value == m_value; } bool operator==(Iterator const& other) const { return other.m_value == m_value; }
bool operator!=(const Iterator& other) const { return !(*this == other); } bool operator!=(Iterator const& other) const { return !(*this == other); }
Iterator& operator++() Iterator& operator++()
{ {
m_value = IntrusiveList<T, Container, member>::next(m_value); m_value = IntrusiveList<T, Container, member>::next(m_value);
@ -103,8 +103,8 @@ public:
auto operator->() const { return m_value; } auto operator->() const { return m_value; }
T& operator*() { return *m_value; } T& operator*() { return *m_value; }
auto operator->() { return m_value; } auto operator->() { return m_value; }
bool operator==(const ReverseIterator& other) const { return other.m_value == m_value; } bool operator==(ReverseIterator const& other) const { return other.m_value == m_value; }
bool operator!=(const ReverseIterator& other) const { return !(*this == other); } bool operator!=(ReverseIterator const& other) const { return !(*this == other); }
ReverseIterator& operator++() ReverseIterator& operator++()
{ {
m_value = IntrusiveList<T, Container, member>::prev(m_value); m_value = IntrusiveList<T, Container, member>::prev(m_value);
@ -129,8 +129,8 @@ public:
const T& operator*() const { return *m_value; } const T& operator*() const { return *m_value; }
auto operator->() const { return m_value; } auto operator->() const { return m_value; }
bool operator==(const ConstIterator& other) const { return other.m_value == m_value; } bool operator==(ConstIterator const& other) const { return other.m_value == m_value; }
bool operator!=(const ConstIterator& other) const { return !(*this == other); } bool operator!=(ConstIterator const& other) const { return !(*this == other); }
ConstIterator& operator++() ConstIterator& operator++()
{ {
m_value = IntrusiveList<T, Container, member>::next(m_value); m_value = IntrusiveList<T, Container, member>::next(m_value);

View file

@ -70,7 +70,7 @@ public:
class BaseIterator { class BaseIterator {
public: public:
BaseIterator() = default; BaseIterator() = default;
bool operator!=(const BaseIterator& other) const { return m_node != other.m_node; } bool operator!=(BaseIterator const& other) const { return m_node != other.m_node; }
BaseIterator& operator++() BaseIterator& operator++()
{ {
if (!m_node) if (!m_node)

View file

@ -58,12 +58,12 @@ public:
ALWAYS_INLINE constexpr ValueType const* operator->() const { return &m_container[m_index]; } ALWAYS_INLINE constexpr ValueType const* operator->() const { return &m_container[m_index]; }
ALWAYS_INLINE constexpr ValueType* operator->() { return &m_container[m_index]; } ALWAYS_INLINE constexpr ValueType* operator->() { return &m_container[m_index]; }
SimpleIterator& operator=(const SimpleIterator& other) SimpleIterator& operator=(SimpleIterator const& other)
{ {
m_index = other.m_index; m_index = other.m_index;
return *this; return *this;
} }
SimpleIterator(const SimpleIterator& obj) = default; SimpleIterator(SimpleIterator const& obj) = default;
private: private:
static constexpr SimpleIterator begin(Container& container) { return { container, 0 }; } static constexpr SimpleIterator begin(Container& container) { return { container, 0 }; }

View file

@ -41,7 +41,7 @@ public:
{ {
} }
JsonArraySerializer(const JsonArraySerializer&) = delete; JsonArraySerializer(JsonArraySerializer const&) = delete;
~JsonArraySerializer() ~JsonArraySerializer()
{ {
@ -49,7 +49,7 @@ public:
} }
#ifndef KERNEL #ifndef KERNEL
ErrorOr<void> add(const JsonValue& value) ErrorOr<void> add(JsonValue const& value)
{ {
TRY(begin_item()); TRY(begin_item());
value.serialize(m_builder); value.serialize(m_builder);
@ -73,7 +73,7 @@ public:
} }
#ifndef KERNEL #ifndef KERNEL
ErrorOr<void> add(const String& value) ErrorOr<void> add(String const& value)
{ {
TRY(begin_item()); TRY(begin_item());
if constexpr (IsLegacyBuilder<Builder>) { if constexpr (IsLegacyBuilder<Builder>) {
@ -89,7 +89,7 @@ public:
} }
#endif #endif
ErrorOr<void> add(const char* value) ErrorOr<void> add(char const* value)
{ {
TRY(begin_item()); TRY(begin_item());
if constexpr (IsLegacyBuilder<Builder>) { if constexpr (IsLegacyBuilder<Builder>) {

View file

@ -36,7 +36,7 @@ public:
{ {
} }
JsonObjectSerializer(const JsonObjectSerializer&) = delete; JsonObjectSerializer(JsonObjectSerializer const&) = delete;
~JsonObjectSerializer() ~JsonObjectSerializer()
{ {
@ -44,7 +44,7 @@ public:
} }
#ifndef KERNEL #ifndef KERNEL
ErrorOr<void> add(StringView key, const JsonValue& value) ErrorOr<void> add(StringView key, JsonValue const& value)
{ {
TRY(begin_item(key)); TRY(begin_item(key));
value.serialize(m_builder); value.serialize(m_builder);
@ -68,7 +68,7 @@ public:
} }
#ifndef KERNEL #ifndef KERNEL
ErrorOr<void> add(StringView key, const String& value) ErrorOr<void> add(StringView key, String const& value)
{ {
TRY(begin_item(key)); TRY(begin_item(key));
if constexpr (IsLegacyBuilder<Builder>) { if constexpr (IsLegacyBuilder<Builder>) {
@ -84,7 +84,7 @@ public:
} }
#endif #endif
ErrorOr<void> add(StringView key, const char* value) ErrorOr<void> add(StringView key, char const* value)
{ {
TRY(begin_item(key)); TRY(begin_item(key));
if constexpr (IsLegacyBuilder<Builder>) { if constexpr (IsLegacyBuilder<Builder>) {

View file

@ -13,7 +13,7 @@ namespace AK {
JsonPathElement JsonPathElement::any_array_element { Kind::AnyIndex }; JsonPathElement JsonPathElement::any_array_element { Kind::AnyIndex };
JsonPathElement JsonPathElement::any_object_element { Kind::AnyKey }; JsonPathElement JsonPathElement::any_object_element { Kind::AnyKey };
JsonValue JsonPath::resolve(const JsonValue& top_root) const JsonValue JsonPath::resolve(JsonValue const& top_root) const
{ {
auto root = top_root; auto root = top_root;
for (auto const& element : *this) { for (auto const& element : *this) {

View file

@ -34,7 +34,7 @@ public:
} }
Kind kind() const { return m_kind; } Kind kind() const { return m_kind; }
const String& key() const String const& key() const
{ {
VERIFY(m_kind == Kind::Key); VERIFY(m_kind == Kind::Key);
return m_key; return m_key;
@ -61,7 +61,7 @@ public:
static JsonPathElement any_array_element; static JsonPathElement any_array_element;
static JsonPathElement any_object_element; static JsonPathElement any_object_element;
bool operator==(const JsonPathElement& other) const bool operator==(JsonPathElement const& other) const
{ {
switch (other.kind()) { switch (other.kind()) {
case Kind::Key: case Kind::Key:
@ -75,7 +75,7 @@ public:
} }
return false; return false;
} }
bool operator!=(const JsonPathElement& other) const bool operator!=(JsonPathElement const& other) const
{ {
return !(*this == other); return !(*this == other);
} }
@ -93,7 +93,7 @@ private:
class JsonPath : public Vector<JsonPathElement> { class JsonPath : public Vector<JsonPathElement> {
public: public:
JsonValue resolve(const JsonValue&) const; JsonValue resolve(JsonValue const&) const;
String to_string() const; String to_string() const;
}; };

View file

@ -20,12 +20,12 @@ JsonValue::JsonValue(Type type)
{ {
} }
JsonValue::JsonValue(const JsonValue& other) JsonValue::JsonValue(JsonValue const& other)
{ {
copy_from(other); copy_from(other);
} }
JsonValue& JsonValue::operator=(const JsonValue& other) JsonValue& JsonValue::operator=(JsonValue const& other)
{ {
if (this != &other) { if (this != &other) {
clear(); clear();
@ -34,7 +34,7 @@ JsonValue& JsonValue::operator=(const JsonValue& other)
return *this; return *this;
} }
void JsonValue::copy_from(const JsonValue& other) void JsonValue::copy_from(JsonValue const& other)
{ {
m_type = other.m_type; m_type = other.m_type;
switch (m_type) { switch (m_type) {
@ -71,7 +71,7 @@ JsonValue& JsonValue::operator=(JsonValue&& other)
return *this; return *this;
} }
bool JsonValue::equals(const JsonValue& other) const bool JsonValue::equals(JsonValue const& other) const
{ {
if (is_null() && other.is_null()) if (is_null() && other.is_null())
return true; return true;
@ -155,7 +155,7 @@ JsonValue::JsonValue(long long unsigned value)
m_value.as_u64 = value; m_value.as_u64 = value;
} }
JsonValue::JsonValue(const char* cstring) JsonValue::JsonValue(char const* cstring)
: JsonValue(String(cstring)) : JsonValue(String(cstring))
{ {
} }
@ -174,7 +174,7 @@ JsonValue::JsonValue(bool value)
m_value.as_bool = value; m_value.as_bool = value;
} }
JsonValue::JsonValue(const String& value) JsonValue::JsonValue(String const& value)
{ {
if (value.is_null()) { if (value.is_null()) {
m_type = Type::Null; m_type = Type::Null;
@ -190,13 +190,13 @@ JsonValue::JsonValue(StringView value)
{ {
} }
JsonValue::JsonValue(const JsonObject& value) JsonValue::JsonValue(JsonObject const& value)
: m_type(Type::Object) : m_type(Type::Object)
{ {
m_value.as_object = new JsonObject(value); m_value.as_object = new JsonObject(value);
} }
JsonValue::JsonValue(const JsonArray& value) JsonValue::JsonValue(JsonArray const& value)
: m_type(Type::Array) : m_type(Type::Array)
{ {
m_value.as_array = new JsonArray(value); m_value.as_array = new JsonArray(value);

View file

@ -38,10 +38,10 @@ public:
explicit JsonValue(Type = Type::Null); explicit JsonValue(Type = Type::Null);
~JsonValue() { clear(); } ~JsonValue() { clear(); }
JsonValue(const JsonValue&); JsonValue(JsonValue const&);
JsonValue(JsonValue&&); JsonValue(JsonValue&&);
JsonValue& operator=(const JsonValue&); JsonValue& operator=(JsonValue const&);
JsonValue& operator=(JsonValue&&); JsonValue& operator=(JsonValue&&);
JsonValue(int); JsonValue(int);
@ -55,13 +55,13 @@ public:
JsonValue(double); JsonValue(double);
#endif #endif
JsonValue(bool); JsonValue(bool);
JsonValue(const char*); JsonValue(char const*);
#ifndef KERNEL #ifndef KERNEL
JsonValue(const String&); JsonValue(String const&);
#endif #endif
JsonValue(StringView); JsonValue(StringView);
JsonValue(const JsonArray&); JsonValue(JsonArray const&);
JsonValue(const JsonObject&); JsonValue(JsonObject const&);
JsonValue(JsonArray&&); JsonValue(JsonArray&&);
JsonValue(JsonObject&&); JsonValue(JsonObject&&);
@ -163,13 +163,13 @@ public:
} }
#endif #endif
const JsonObject& as_object() const JsonObject const& as_object() const
{ {
VERIFY(is_object()); VERIFY(is_object());
return *m_value.as_object; return *m_value.as_object;
} }
const JsonArray& as_array() const JsonArray const& as_array() const
{ {
VERIFY(is_array()); VERIFY(is_array());
return *m_value.as_array; return *m_value.as_array;
@ -240,11 +240,11 @@ public:
return default_value; return default_value;
} }
bool equals(const JsonValue& other) const; bool equals(JsonValue const& other) const;
private: private:
void clear(); void clear();
void copy_from(const JsonValue&); void copy_from(JsonValue const&);
Type m_type { Type::Null }; Type m_type { Type::Null };

View file

@ -36,11 +36,11 @@ struct LEB128 {
return false; return false;
ValueType masked_byte = byte & ~(1 << 7); ValueType masked_byte = byte & ~(1 << 7);
const bool shift_too_large_for_result = (num_bytes * 7 > sizeof(ValueType) * 8) && (masked_byte != 0); bool const shift_too_large_for_result = (num_bytes * 7 > sizeof(ValueType) * 8) && (masked_byte != 0);
if (shift_too_large_for_result) if (shift_too_large_for_result)
return false; return false;
const bool shift_too_large_for_byte = ((masked_byte << (num_bytes * 7)) >> (num_bytes * 7)) != masked_byte; bool const shift_too_large_for_byte = ((masked_byte << (num_bytes * 7)) >> (num_bytes * 7)) != masked_byte;
if (shift_too_large_for_byte) if (shift_too_large_for_byte)
return false; return false;
@ -83,11 +83,11 @@ struct LEB128 {
// note: 64 bit assumptions! // note: 64 bit assumptions!
u64 masked_byte = byte & ~(1 << 7); u64 masked_byte = byte & ~(1 << 7);
const bool shift_too_large_for_result = (num_bytes * 7 >= 64) && (masked_byte != ((temp < 0) ? 0x7Fu : 0u)); bool const shift_too_large_for_result = (num_bytes * 7 >= 64) && (masked_byte != ((temp < 0) ? 0x7Fu : 0u));
if (shift_too_large_for_result) if (shift_too_large_for_result)
return false; return false;
const bool shift_too_large_for_byte = (num_bytes * 7) == 63 && masked_byte != 0x00 && masked_byte != 0x7Fu; bool const shift_too_large_for_byte = (num_bytes * 7) == 63 && masked_byte != 0x00 && masked_byte != 0x7Fu;
if (shift_too_large_for_byte) if (shift_too_large_for_byte)
return false; return false;

View file

@ -36,7 +36,7 @@ public:
constexpr ~MACAddress() = default; constexpr ~MACAddress() = default;
constexpr const u8& operator[](unsigned i) const constexpr u8 const& operator[](unsigned i) const
{ {
VERIFY(i < s_mac_address_length); VERIFY(i < s_mac_address_length);
return m_data[i]; return m_data[i];
@ -48,7 +48,7 @@ public:
return m_data[i]; return m_data[i];
} }
constexpr bool operator==(const MACAddress& other) const constexpr bool operator==(MACAddress const& other) const
{ {
for (auto i = 0u; i < m_data.size(); ++i) { for (auto i = 0u; i < m_data.size(); ++i) {
if (m_data[i] != other.m_data[i]) { if (m_data[i] != other.m_data[i]) {
@ -75,7 +75,7 @@ public:
if (string.is_null()) if (string.is_null())
return {}; return {};
const auto parts = string.split_view(":"); auto const parts = string.split_view(":");
if (parts.size() != 6) if (parts.size() != 6)
return {}; return {};
@ -94,7 +94,7 @@ public:
constexpr bool is_zero() const constexpr bool is_zero() const
{ {
return all_of(m_data, [](const auto octet) { return octet == 0; }); return all_of(m_data, [](auto const octet) { return octet == 0; });
} }
void copy_to(Bytes destination) const void copy_to(Bytes destination) const
@ -112,7 +112,7 @@ namespace AK {
template<> template<>
struct Traits<MACAddress> : public GenericTraits<MACAddress> { struct Traits<MACAddress> : public GenericTraits<MACAddress> {
static unsigned hash(const MACAddress& address) { return string_hash((const char*)&address, sizeof(address)); } static unsigned hash(MACAddress const& address) { return string_hash((char const*)&address, sizeof(address)); }
}; };
} }

View file

@ -15,7 +15,7 @@
namespace AK { namespace AK {
namespace Detail { namespace Detail {
constexpr const void* bitap_bitwise(const void* haystack, size_t haystack_length, const void* needle, size_t needle_length) constexpr void const* bitap_bitwise(void const* haystack, size_t haystack_length, void const* needle, size_t needle_length)
{ {
VERIFY(needle_length < 32); VERIFY(needle_length < 32);
@ -28,14 +28,14 @@ constexpr const void* bitap_bitwise(const void* haystack, size_t haystack_length
needle_mask[i] = 0xffffffff; needle_mask[i] = 0xffffffff;
for (size_t i = 0; i < needle_length; ++i) for (size_t i = 0; i < needle_length; ++i)
needle_mask[((const u8*)needle)[i]] &= ~(0x00000001 << i); needle_mask[((u8 const*)needle)[i]] &= ~(0x00000001 << i);
for (size_t i = 0; i < haystack_length; ++i) { for (size_t i = 0; i < haystack_length; ++i) {
lookup |= needle_mask[((const u8*)haystack)[i]]; lookup |= needle_mask[((u8 const*)haystack)[i]];
lookup <<= 1; lookup <<= 1;
if (0 == (lookup & (0x00000001 << needle_length))) if (0 == (lookup & (0x00000001 << needle_length)))
return ((const u8*)haystack) + i - needle_length + 1; return ((u8 const*)haystack) + i - needle_length + 1;
} }
return nullptr; return nullptr;
@ -43,7 +43,7 @@ constexpr const void* bitap_bitwise(const void* haystack, size_t haystack_length
} }
template<typename HaystackIterT> template<typename HaystackIterT>
inline Optional<size_t> memmem(const HaystackIterT& haystack_begin, const HaystackIterT& haystack_end, Span<const u8> needle) requires(requires { (*haystack_begin).data(); (*haystack_begin).size(); }) inline Optional<size_t> memmem(HaystackIterT const& haystack_begin, HaystackIterT const& haystack_end, Span<const u8> needle) requires(requires { (*haystack_begin).data(); (*haystack_begin).size(); })
{ {
auto prepare_kmp_partial_table = [&] { auto prepare_kmp_partial_table = [&] {
Vector<int, 64> table; Vector<int, 64> table;
@ -100,7 +100,7 @@ inline Optional<size_t> memmem(const HaystackIterT& haystack_begin, const Haysta
return {}; return {};
} }
inline Optional<size_t> memmem_optional(const void* haystack, size_t haystack_length, const void* needle, size_t needle_length) inline Optional<size_t> memmem_optional(void const* haystack, size_t haystack_length, void const* needle, size_t needle_length)
{ {
if (needle_length == 0) if (needle_length == 0)
return 0; return 0;
@ -122,15 +122,15 @@ inline Optional<size_t> memmem_optional(const void* haystack, size_t haystack_le
} }
// Fallback to KMP. // Fallback to KMP.
Array<Span<const u8>, 1> spans { Span<const u8> { (const u8*)haystack, haystack_length } }; Array<Span<const u8>, 1> spans { Span<const u8> { (u8 const*)haystack, haystack_length } };
return memmem(spans.begin(), spans.end(), { (const u8*)needle, needle_length }); return memmem(spans.begin(), spans.end(), { (u8 const*)needle, needle_length });
} }
inline const void* memmem(const void* haystack, size_t haystack_length, const void* needle, size_t needle_length) inline void const* memmem(void const* haystack, size_t haystack_length, void const* needle, size_t needle_length)
{ {
auto offset = memmem_optional(haystack, haystack_length, needle, needle_length); auto offset = memmem_optional(haystack, haystack_length, needle, needle_length);
if (offset.has_value()) if (offset.has_value())
return ((const u8*)haystack) + offset.value(); return ((u8 const*)haystack) + offset.value();
return nullptr; return nullptr;
} }

View file

@ -16,7 +16,7 @@
# include <string.h> # include <string.h>
#endif #endif
ALWAYS_INLINE void fast_u32_copy(u32* dest, const u32* src, size_t count) ALWAYS_INLINE void fast_u32_copy(u32* dest, u32 const* src, size_t count)
{ {
#if ARCH(I386) || ARCH(X86_64) #if ARCH(I386) || ARCH(X86_64)
asm volatile( asm volatile(
@ -58,10 +58,10 @@ inline void secure_zero(void* ptr, size_t size)
// guarded against potential timing attacks. // guarded against potential timing attacks.
// //
// See OpenBSD's timingsafe_memcmp for more advanced implementations. // See OpenBSD's timingsafe_memcmp for more advanced implementations.
inline bool timing_safe_compare(const void* b1, const void* b2, size_t len) inline bool timing_safe_compare(void const* b1, void const* b2, size_t len)
{ {
auto* c1 = static_cast<const char*>(b1); auto* c1 = static_cast<char const*>(b1);
auto* c2 = static_cast<const char*>(b2); auto* c2 = static_cast<char const*>(b2);
u8 res = 0; u8 res = 0;
for (size_t i = 0; i < len; i++) { for (size_t i = 0; i < len; i++) {

View file

@ -29,7 +29,7 @@ public:
if (has_any_error()) if (has_any_error())
return 0; return 0;
const auto count = min(bytes.size(), remaining()); auto const count = min(bytes.size(), remaining());
__builtin_memcpy(bytes.data(), m_bytes.data() + m_offset, count); __builtin_memcpy(bytes.data(), m_bytes.data() + m_offset, count);
m_offset += count; m_offset += count;
return count; return count;
@ -98,7 +98,7 @@ public:
size_t write(ReadonlyBytes bytes) override size_t write(ReadonlyBytes bytes) override
{ {
const auto nwritten = bytes.copy_trimmed_to(m_bytes.slice(m_offset)); auto const nwritten = bytes.copy_trimmed_to(m_bytes.slice(m_offset));
m_offset += nwritten; m_offset += nwritten;
return nwritten; return nwritten;
} }
@ -116,7 +116,7 @@ public:
size_t fill_to_end(u8 value) size_t fill_to_end(u8 value)
{ {
const auto nwritten = m_bytes.slice(m_offset).fill(value); auto const nwritten = m_bytes.slice(m_offset).fill(value);
m_offset += nwritten; m_offset += nwritten;
return nwritten; return nwritten;
} }
@ -126,7 +126,7 @@ public:
ReadonlyBytes bytes() const { return { data(), size() }; } ReadonlyBytes bytes() const { return { data(), size() }; }
Bytes bytes() { return { data(), size() }; } Bytes bytes() { return { data(), size() }; }
const u8* data() const { return m_bytes.data(); } u8 const* data() const { return m_bytes.data(); }
u8* data() { return m_bytes.data(); } u8* data() { return m_bytes.data(); }
size_t size() const { return m_offset; } size_t size() const { return m_offset; }
@ -186,8 +186,8 @@ public:
{ {
size_t nread = 0; size_t nread = 0;
while (bytes.size() - nread > 0 && m_write_offset - m_read_offset - nread > 0) { while (bytes.size() - nread > 0 && m_write_offset - m_read_offset - nread > 0) {
const auto chunk_index = (m_read_offset - m_base_offset + nread) / chunk_size; auto const chunk_index = (m_read_offset - m_base_offset + nread) / chunk_size;
const auto chunk_bytes = m_chunks[chunk_index].bytes().slice((m_read_offset + nread) % chunk_size).trim(m_write_offset - m_read_offset - nread); auto const chunk_bytes = m_chunks[chunk_index].bytes().slice((m_read_offset + nread) % chunk_size).trim(m_write_offset - m_read_offset - nread);
nread += chunk_bytes.copy_trimmed_to(bytes.slice(nread)); nread += chunk_bytes.copy_trimmed_to(bytes.slice(nread));
} }
@ -199,7 +199,7 @@ public:
if (has_any_error()) if (has_any_error())
return 0; return 0;
const auto nread = read_without_consuming(bytes); auto const nread = read_without_consuming(bytes);
m_read_offset += nread; m_read_offset += nread;
try_discard_chunks(); try_discard_chunks();
@ -244,7 +244,7 @@ public:
// FIXME: Handle possible OOM situation. // FIXME: Handle possible OOM situation.
auto buffer = ByteBuffer::create_uninitialized(size()).release_value_but_fixme_should_propagate_errors(); auto buffer = ByteBuffer::create_uninitialized(size()).release_value_but_fixme_should_propagate_errors();
const auto nread = read_without_consuming(buffer); auto const nread = read_without_consuming(buffer);
VERIFY(nread == buffer.size()); VERIFY(nread == buffer.size());
return buffer; return buffer;

View file

@ -8,8 +8,8 @@
#define AK_MAKE_NONCOPYABLE(c) \ #define AK_MAKE_NONCOPYABLE(c) \
private: \ private: \
c(const c&) = delete; \ c(c const&) = delete; \
c& operator=(const c&) = delete c& operator=(c const&) = delete
#define AK_MAKE_NONMOVABLE(c) \ #define AK_MAKE_NONMOVABLE(c) \
private: \ private: \

View file

@ -57,25 +57,25 @@ public:
#endif #endif
} }
NonnullOwnPtr(const NonnullOwnPtr&) = delete; NonnullOwnPtr(NonnullOwnPtr const&) = delete;
template<typename U> template<typename U>
NonnullOwnPtr(const NonnullOwnPtr<U>&) = delete; NonnullOwnPtr(NonnullOwnPtr<U> const&) = delete;
NonnullOwnPtr& operator=(const NonnullOwnPtr&) = delete; NonnullOwnPtr& operator=(NonnullOwnPtr const&) = delete;
template<typename U> template<typename U>
NonnullOwnPtr& operator=(const NonnullOwnPtr<U>&) = delete; NonnullOwnPtr& operator=(NonnullOwnPtr<U> const&) = delete;
template<typename U, typename PtrTraits = RefPtrTraits<U>> template<typename U, typename PtrTraits = RefPtrTraits<U>>
NonnullOwnPtr(const RefPtr<U, PtrTraits>&) = delete; NonnullOwnPtr(RefPtr<U, PtrTraits> const&) = delete;
template<typename U> template<typename U>
NonnullOwnPtr(const NonnullRefPtr<U>&) = delete; NonnullOwnPtr(NonnullRefPtr<U> const&) = delete;
template<typename U> template<typename U>
NonnullOwnPtr(const WeakPtr<U>&) = delete; NonnullOwnPtr(WeakPtr<U> const&) = delete;
template<typename U, typename PtrTraits = RefPtrTraits<U>> template<typename U, typename PtrTraits = RefPtrTraits<U>>
NonnullOwnPtr& operator=(const RefPtr<U, PtrTraits>&) = delete; NonnullOwnPtr& operator=(RefPtr<U, PtrTraits> const&) = delete;
template<typename U> template<typename U>
NonnullOwnPtr& operator=(const NonnullRefPtr<U>&) = delete; NonnullOwnPtr& operator=(NonnullRefPtr<U> const&) = delete;
template<typename U> template<typename U>
NonnullOwnPtr& operator=(const WeakPtr<U>&) = delete; NonnullOwnPtr& operator=(WeakPtr<U> const&) = delete;
NonnullOwnPtr& operator=(NonnullOwnPtr&& other) NonnullOwnPtr& operator=(NonnullOwnPtr&& other)
{ {
@ -178,8 +178,8 @@ template<typename T>
struct Traits<NonnullOwnPtr<T>> : public GenericTraits<NonnullOwnPtr<T>> { struct Traits<NonnullOwnPtr<T>> : public GenericTraits<NonnullOwnPtr<T>> {
using PeekType = T*; using PeekType = T*;
using ConstPeekType = const T*; using ConstPeekType = const T*;
static unsigned hash(const NonnullOwnPtr<T>& p) { return ptr_hash((FlatPtr)p.ptr()); } static unsigned hash(NonnullOwnPtr<T> const& p) { return ptr_hash((FlatPtr)p.ptr()); }
static bool equals(const NonnullOwnPtr<T>& a, const NonnullOwnPtr<T>& b) { return a.ptr() == b.ptr(); } static bool equals(NonnullOwnPtr<T> const& a, NonnullOwnPtr<T> const& b) { return a.ptr() == b.ptr(); }
}; };
template<typename T, typename U> template<typename T, typename U>

View file

@ -22,8 +22,8 @@ public:
: Base(static_cast<Base&&>(other)) : Base(static_cast<Base&&>(other))
{ {
} }
NonnullPtrVector(const Vector<PtrType>& other) NonnullPtrVector(Vector<PtrType> const& other)
: Base(static_cast<const Base&>(other)) : Base(static_cast<Base const&>(other))
{ {
} }
@ -48,7 +48,7 @@ public:
ALWAYS_INLINE constexpr auto in_reverse() const { return ReverseWrapper::in_reverse(*this); } ALWAYS_INLINE constexpr auto in_reverse() const { return ReverseWrapper::in_reverse(*this); }
ALWAYS_INLINE PtrType& ptr_at(size_t index) { return Base::at(index); } ALWAYS_INLINE PtrType& ptr_at(size_t index) { return Base::at(index); }
ALWAYS_INLINE const PtrType& ptr_at(size_t index) const { return Base::at(index); } ALWAYS_INLINE PtrType const& ptr_at(size_t index) const { return Base::at(index); }
ALWAYS_INLINE T& at(size_t index) { return *Base::at(index); } ALWAYS_INLINE T& at(size_t index) { return *Base::at(index); }
ALWAYS_INLINE const T& at(size_t index) const { return *Base::at(index); } ALWAYS_INLINE const T& at(size_t index) const { return *Base::at(index); }

View file

@ -104,16 +104,16 @@ public:
} }
template<typename U> template<typename U>
NonnullRefPtr(const OwnPtr<U>&) = delete; NonnullRefPtr(OwnPtr<U> const&) = delete;
template<typename U> template<typename U>
NonnullRefPtr& operator=(const OwnPtr<U>&) = delete; NonnullRefPtr& operator=(OwnPtr<U> const&) = delete;
template<typename U> template<typename U>
NonnullRefPtr(const RefPtr<U>&) = delete; NonnullRefPtr(RefPtr<U> const&) = delete;
template<typename U> template<typename U>
NonnullRefPtr& operator=(const RefPtr<U>&) = delete; NonnullRefPtr& operator=(RefPtr<U> const&) = delete;
NonnullRefPtr(const RefPtr<T>&) = delete; NonnullRefPtr(RefPtr<T> const&) = delete;
NonnullRefPtr& operator=(const RefPtr<T>&) = delete; NonnullRefPtr& operator=(RefPtr<T> const&) = delete;
NonnullRefPtr& operator=(NonnullRefPtr const& other) NonnullRefPtr& operator=(NonnullRefPtr const& other)
{ {
@ -270,8 +270,8 @@ template<typename T>
struct Traits<NonnullRefPtr<T>> : public GenericTraits<NonnullRefPtr<T>> { struct Traits<NonnullRefPtr<T>> : public GenericTraits<NonnullRefPtr<T>> {
using PeekType = T*; using PeekType = T*;
using ConstPeekType = const T*; using ConstPeekType = const T*;
static unsigned hash(const NonnullRefPtr<T>& p) { return ptr_hash(p.ptr()); } static unsigned hash(NonnullRefPtr<T> const& p) { return ptr_hash(p.ptr()); }
static bool equals(const NonnullRefPtr<T>& a, const NonnullRefPtr<T>& b) { return a.ptr() == b.ptr(); } static bool equals(NonnullRefPtr<T> const& a, NonnullRefPtr<T> const& b) { return a.ptr() == b.ptr(); }
}; };
using AK::adopt_ref; using AK::adopt_ref;

View file

@ -11,7 +11,7 @@
namespace AK { namespace AK {
// FIXME: Remove this hackery once printf() supports floats. // FIXME: Remove this hackery once printf() supports floats.
static String number_string_with_one_decimal(u64 number, u64 unit, const char* suffix) static String number_string_with_one_decimal(u64 number, u64 unit, char const* suffix)
{ {
int decimal = (number % unit) * 10 / unit; int decimal = (number % unit) * 10 / unit;
return String::formatted("{}.{} {}", number / unit, decimal, suffix); return String::formatted("{}.{} {}", number / unit, decimal, suffix);

View file

@ -47,29 +47,29 @@ public:
#endif #endif
} }
OwnPtr(const OwnPtr&) = delete; OwnPtr(OwnPtr const&) = delete;
template<typename U> template<typename U>
OwnPtr(const OwnPtr<U>&) = delete; OwnPtr(OwnPtr<U> const&) = delete;
OwnPtr& operator=(const OwnPtr&) = delete; OwnPtr& operator=(OwnPtr const&) = delete;
template<typename U> template<typename U>
OwnPtr& operator=(const OwnPtr<U>&) = delete; OwnPtr& operator=(OwnPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr(const NonnullOwnPtr<U>&) = delete; OwnPtr(NonnullOwnPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr& operator=(const NonnullOwnPtr<U>&) = delete; OwnPtr& operator=(NonnullOwnPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr(const RefPtr<U>&) = delete; OwnPtr(RefPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr(const NonnullRefPtr<U>&) = delete; OwnPtr(NonnullRefPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr(const WeakPtr<U>&) = delete; OwnPtr(WeakPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr& operator=(const RefPtr<U>&) = delete; OwnPtr& operator=(RefPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr& operator=(const NonnullRefPtr<U>&) = delete; OwnPtr& operator=(NonnullRefPtr<U> const&) = delete;
template<typename U> template<typename U>
OwnPtr& operator=(const WeakPtr<U>&) = delete; OwnPtr& operator=(WeakPtr<U> const&) = delete;
OwnPtr& operator=(OwnPtr&& other) OwnPtr& operator=(OwnPtr&& other)
{ {
@ -232,8 +232,8 @@ template<typename T>
struct Traits<OwnPtr<T>> : public GenericTraits<OwnPtr<T>> { struct Traits<OwnPtr<T>> : public GenericTraits<OwnPtr<T>> {
using PeekType = T*; using PeekType = T*;
using ConstPeekType = const T*; using ConstPeekType = const T*;
static unsigned hash(const OwnPtr<T>& p) { return ptr_hash(p.ptr()); } static unsigned hash(OwnPtr<T> const& p) { return ptr_hash(p.ptr()); }
static bool equals(const OwnPtr<T>& a, const OwnPtr<T>& b) { return a.ptr() == b.ptr(); } static bool equals(OwnPtr<T> const& a, OwnPtr<T> const& b) { return a.ptr() == b.ptr(); }
}; };
} }

View file

@ -14,7 +14,7 @@
#include <wchar.h> #include <wchar.h>
#ifdef __serenity__ #ifdef __serenity__
extern "C" size_t strlen(const char*); extern "C" size_t strlen(char const*);
#else #else
# include <string.h> # include <string.h>
#endif #endif
@ -24,8 +24,8 @@ namespace PrintfImplementation {
template<typename PutChFunc, typename T, typename CharType> template<typename PutChFunc, typename T, typename CharType>
ALWAYS_INLINE int print_hex(PutChFunc putch, CharType*& bufptr, T number, bool upper_case, bool alternate_form, bool left_pad, bool zero_pad, u32 field_width, bool has_precision, u32 precision) ALWAYS_INLINE int print_hex(PutChFunc putch, CharType*& bufptr, T number, bool upper_case, bool alternate_form, bool left_pad, bool zero_pad, u32 field_width, bool has_precision, u32 precision)
{ {
constexpr const char* printf_hex_digits_lower = "0123456789abcdef"; constexpr char const* printf_hex_digits_lower = "0123456789abcdef";
constexpr const char* printf_hex_digits_upper = "0123456789ABCDEF"; constexpr char const* printf_hex_digits_upper = "0123456789ABCDEF";
u32 digits = 0; u32 digits = 0;
for (T n = number; n > 0; n >>= 4) for (T n = number; n > 0; n >>= 4)
@ -331,104 +331,104 @@ struct ModifierState {
template<typename PutChFunc, typename ArgumentListRefT, template<typename T, typename U = ArgumentListRefT> typename NextArgument, typename CharType = char> template<typename PutChFunc, typename ArgumentListRefT, template<typename T, typename U = ArgumentListRefT> typename NextArgument, typename CharType = char>
struct PrintfImpl { struct PrintfImpl {
ALWAYS_INLINE PrintfImpl(PutChFunc& putch, CharType*& bufptr, const int& nwritten) ALWAYS_INLINE PrintfImpl(PutChFunc& putch, CharType*& bufptr, int const& nwritten)
: m_bufptr(bufptr) : m_bufptr(bufptr)
, m_nwritten(nwritten) , m_nwritten(nwritten)
, m_putch(putch) , m_putch(putch)
{ {
} }
ALWAYS_INLINE int format_s(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_s(ModifierState const& state, ArgumentListRefT ap) const
{ {
// FIXME: Narrow characters should be converted to wide characters on the fly and vice versa. // FIXME: Narrow characters should be converted to wide characters on the fly and vice versa.
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html // https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/wprintf.html // https://pubs.opengroup.org/onlinepubs/9699919799/functions/wprintf.html
#ifndef KERNEL #ifndef KERNEL
if (state.long_qualifiers) { if (state.long_qualifiers) {
const wchar_t* sp = NextArgument<const wchar_t*>()(ap); wchar_t const* sp = NextArgument<wchar_t const*>()(ap);
if (!sp) if (!sp)
sp = L"(null)"; sp = L"(null)";
return print_string(m_putch, m_bufptr, sp, wcslen(sp), state.left_pad, state.field_width, state.dot, state.precision, state.has_precision); return print_string(m_putch, m_bufptr, sp, wcslen(sp), state.left_pad, state.field_width, state.dot, state.precision, state.has_precision);
} }
#endif #endif
const char* sp = NextArgument<const char*>()(ap); char const* sp = NextArgument<char const*>()(ap);
if (!sp) if (!sp)
sp = "(null)"; sp = "(null)";
return print_string(m_putch, m_bufptr, sp, strlen(sp), state.left_pad, state.field_width, state.dot, state.precision, state.has_precision); return print_string(m_putch, m_bufptr, sp, strlen(sp), state.left_pad, state.field_width, state.dot, state.precision, state.has_precision);
} }
ALWAYS_INLINE int format_d(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_d(ModifierState const& state, ArgumentListRefT ap) const
{ {
if (state.long_qualifiers >= 2) if (state.long_qualifiers >= 2)
return print_i64(m_putch, m_bufptr, NextArgument<i64>()(ap), state.always_sign, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_i64(m_putch, m_bufptr, NextArgument<i64>()(ap), state.always_sign, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
return print_signed_number(m_putch, m_bufptr, NextArgument<int>()(ap), state.always_sign, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_signed_number(m_putch, m_bufptr, NextArgument<int>()(ap), state.always_sign, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
} }
ALWAYS_INLINE int format_i(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_i(ModifierState const& state, ArgumentListRefT ap) const
{ {
return format_d(state, ap); return format_d(state, ap);
} }
ALWAYS_INLINE int format_u(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_u(ModifierState const& state, ArgumentListRefT ap) const
{ {
if (state.long_qualifiers >= 2) if (state.long_qualifiers >= 2)
return print_decimal(m_putch, m_bufptr, NextArgument<u64>()(ap), false, false, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_decimal(m_putch, m_bufptr, NextArgument<u64>()(ap), false, false, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
return print_decimal(m_putch, m_bufptr, NextArgument<u32>()(ap), false, false, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_decimal(m_putch, m_bufptr, NextArgument<u32>()(ap), false, false, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
} }
ALWAYS_INLINE int format_Q(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_Q(ModifierState const& state, ArgumentListRefT ap) const
{ {
return print_decimal(m_putch, m_bufptr, NextArgument<u64>()(ap), false, false, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_decimal(m_putch, m_bufptr, NextArgument<u64>()(ap), false, false, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
} }
ALWAYS_INLINE int format_q(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_q(ModifierState const& state, ArgumentListRefT ap) const
{ {
return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), false, false, state.left_pad, state.zero_pad, 16, false, 1); return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), false, false, state.left_pad, state.zero_pad, 16, false, 1);
} }
ALWAYS_INLINE int format_g(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_g(ModifierState const& state, ArgumentListRefT ap) const
{ {
return format_f(state, ap); return format_f(state, ap);
} }
ALWAYS_INLINE int format_f(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_f(ModifierState const& state, ArgumentListRefT ap) const
{ {
return print_double(m_putch, m_bufptr, NextArgument<double>()(ap), state.always_sign, state.left_pad, state.zero_pad, state.field_width, state.precision); return print_double(m_putch, m_bufptr, NextArgument<double>()(ap), state.always_sign, state.left_pad, state.zero_pad, state.field_width, state.precision);
} }
ALWAYS_INLINE int format_o(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_o(ModifierState const& state, ArgumentListRefT ap) const
{ {
return print_octal_number(m_putch, m_bufptr, NextArgument<u32>()(ap), state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_octal_number(m_putch, m_bufptr, NextArgument<u32>()(ap), state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
} }
ALWAYS_INLINE int format_x(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_x(ModifierState const& state, ArgumentListRefT ap) const
{ {
if (state.long_qualifiers >= 2) if (state.long_qualifiers >= 2)
return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), false, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), false, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
return print_hex(m_putch, m_bufptr, NextArgument<u32>()(ap), false, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_hex(m_putch, m_bufptr, NextArgument<u32>()(ap), false, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
} }
ALWAYS_INLINE int format_X(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_X(ModifierState const& state, ArgumentListRefT ap) const
{ {
if (state.long_qualifiers >= 2) if (state.long_qualifiers >= 2)
return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), true, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), true, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
return print_hex(m_putch, m_bufptr, NextArgument<u32>()(ap), true, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision); return print_hex(m_putch, m_bufptr, NextArgument<u32>()(ap), true, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
} }
ALWAYS_INLINE int format_n(const ModifierState&, ArgumentListRefT ap) const ALWAYS_INLINE int format_n(ModifierState const&, ArgumentListRefT ap) const
{ {
*NextArgument<int*>()(ap) = m_nwritten; *NextArgument<int*>()(ap) = m_nwritten;
return 0; return 0;
} }
ALWAYS_INLINE int format_p(const ModifierState&, ArgumentListRefT ap) const ALWAYS_INLINE int format_p(ModifierState const&, ArgumentListRefT ap) const
{ {
return print_hex(m_putch, m_bufptr, NextArgument<FlatPtr>()(ap), false, true, false, true, 8, false, 1); return print_hex(m_putch, m_bufptr, NextArgument<FlatPtr>()(ap), false, true, false, true, 8, false, 1);
} }
ALWAYS_INLINE int format_P(const ModifierState&, ArgumentListRefT ap) const ALWAYS_INLINE int format_P(ModifierState const&, ArgumentListRefT ap) const
{ {
return print_hex(m_putch, m_bufptr, NextArgument<FlatPtr>()(ap), true, true, false, true, 8, false, 1); return print_hex(m_putch, m_bufptr, NextArgument<FlatPtr>()(ap), true, true, false, true, 8, false, 1);
} }
ALWAYS_INLINE int format_percent(const ModifierState&, ArgumentListRefT) const ALWAYS_INLINE int format_percent(ModifierState const&, ArgumentListRefT) const
{ {
m_putch(m_bufptr, '%'); m_putch(m_bufptr, '%');
return 1; return 1;
} }
ALWAYS_INLINE int format_c(const ModifierState& state, ArgumentListRefT ap) const ALWAYS_INLINE int format_c(ModifierState const& state, ArgumentListRefT ap) const
{ {
char c = NextArgument<int>()(ap); char c = NextArgument<int>()(ap);
return print_string(m_putch, m_bufptr, &c, 1, state.left_pad, state.field_width, state.dot, state.precision, state.has_precision); return print_string(m_putch, m_bufptr, &c, 1, state.left_pad, state.field_width, state.dot, state.precision, state.has_precision);
} }
ALWAYS_INLINE int format_unrecognized(CharType format_op, const CharType* fmt, const ModifierState&, ArgumentListRefT) const ALWAYS_INLINE int format_unrecognized(CharType format_op, CharType const* fmt, ModifierState const&, ArgumentListRefT) const
{ {
dbgln("printf_internal: Unimplemented format specifier {} (fmt: {})", format_op, fmt); dbgln("printf_internal: Unimplemented format specifier {} (fmt: {})", format_op, fmt);
return 0; return 0;
@ -436,7 +436,7 @@ struct PrintfImpl {
protected: protected:
CharType*& m_bufptr; CharType*& m_bufptr;
const int& m_nwritten; int const& m_nwritten;
PutChFunc& m_putch; PutChFunc& m_putch;
}; };
@ -454,14 +454,14 @@ struct VaArgNextArgument {
break; break;
template<typename PutChFunc, template<typename T, typename U, template<typename X, typename Y> typename V, typename C = char> typename Impl = PrintfImpl, typename ArgumentListT = va_list, template<typename T, typename V = decltype(declval<ArgumentListT&>())> typename NextArgument = VaArgNextArgument, typename CharType = char> template<typename PutChFunc, template<typename T, typename U, template<typename X, typename Y> typename V, typename C = char> typename Impl = PrintfImpl, typename ArgumentListT = va_list, template<typename T, typename V = decltype(declval<ArgumentListT&>())> typename NextArgument = VaArgNextArgument, typename CharType = char>
ALWAYS_INLINE int printf_internal(PutChFunc putch, IdentityType<CharType>* buffer, const CharType*& fmt, ArgumentListT ap) ALWAYS_INLINE int printf_internal(PutChFunc putch, IdentityType<CharType>* buffer, CharType const*& fmt, ArgumentListT ap)
{ {
int ret = 0; int ret = 0;
CharType* bufptr = buffer; CharType* bufptr = buffer;
Impl<PutChFunc, ArgumentListT&, NextArgument, CharType> impl { putch, bufptr, ret }; Impl<PutChFunc, ArgumentListT&, NextArgument, CharType> impl { putch, bufptr, ret };
for (const CharType* p = fmt; *p; ++p) { for (CharType const* p = fmt; *p; ++p) {
ModifierState state; ModifierState state;
if (*p == '%' && *(p + 1)) { if (*p == '%' && *(p + 1)) {
one_more: one_more:

View file

@ -28,7 +28,7 @@ public:
T const* operator->() const { return *this; } T const* operator->() const { return *this; }
operator T*() { return reinterpret_cast<T*>(static_cast<FlatPtr>(m_ptr)); } operator T*() { return reinterpret_cast<T*>(static_cast<FlatPtr>(m_ptr)); }
operator T const *() const { return reinterpret_cast<T const*>(static_cast<FlatPtr>(m_ptr)); } operator T const*() const { return reinterpret_cast<T const*>(static_cast<FlatPtr>(m_ptr)); }
T& operator[](size_t index) { return static_cast<T*>(*this)[index]; } T& operator[](size_t index) { return static_cast<T*>(*this)[index]; }
T const& operator[](size_t index) const { return static_cast<T const*>(*this)[index]; } T const& operator[](size_t index) const { return static_cast<T const*>(*this)[index]; }

View file

@ -404,7 +404,7 @@ template<typename TreeType, typename ElementType>
class RedBlackTreeIterator { class RedBlackTreeIterator {
public: public:
RedBlackTreeIterator() = default; RedBlackTreeIterator() = default;
bool operator!=(const RedBlackTreeIterator& other) const { return m_node != other.m_node; } bool operator!=(RedBlackTreeIterator const& other) const { return m_node != other.m_node; }
RedBlackTreeIterator& operator++() RedBlackTreeIterator& operator++()
{ {
if (!m_node) if (!m_node)

View file

@ -264,8 +264,8 @@ public:
bool operator==(std::nullptr_t) const { return is_null(); } bool operator==(std::nullptr_t) const { return is_null(); }
bool operator!=(std::nullptr_t) const { return !is_null(); } bool operator!=(std::nullptr_t) const { return !is_null(); }
bool operator==(const RefPtr& other) const { return as_ptr() == other.as_ptr(); } bool operator==(RefPtr const& other) const { return as_ptr() == other.as_ptr(); }
bool operator!=(const RefPtr& other) const { return as_ptr() != other.as_ptr(); } bool operator!=(RefPtr const& other) const { return as_ptr() != other.as_ptr(); }
bool operator==(RefPtr& other) { return as_ptr() == other.as_ptr(); } bool operator==(RefPtr& other) { return as_ptr() == other.as_ptr(); }
bool operator!=(RefPtr& other) { return as_ptr() != other.as_ptr(); } bool operator!=(RefPtr& other) { return as_ptr() != other.as_ptr(); }
@ -305,18 +305,18 @@ template<typename T>
struct Traits<RefPtr<T>> : public GenericTraits<RefPtr<T>> { struct Traits<RefPtr<T>> : public GenericTraits<RefPtr<T>> {
using PeekType = T*; using PeekType = T*;
using ConstPeekType = const T*; using ConstPeekType = const T*;
static unsigned hash(const RefPtr<T>& p) { return ptr_hash(p.ptr()); } static unsigned hash(RefPtr<T> const& p) { return ptr_hash(p.ptr()); }
static bool equals(const RefPtr<T>& a, const RefPtr<T>& b) { return a.ptr() == b.ptr(); } static bool equals(RefPtr<T> const& a, RefPtr<T> const& b) { return a.ptr() == b.ptr(); }
}; };
template<typename T, typename U> template<typename T, typename U>
inline NonnullRefPtr<T> static_ptr_cast(const NonnullRefPtr<U>& ptr) inline NonnullRefPtr<T> static_ptr_cast(NonnullRefPtr<U> const& ptr)
{ {
return NonnullRefPtr<T>(static_cast<const T&>(*ptr)); return NonnullRefPtr<T>(static_cast<const T&>(*ptr));
} }
template<typename T, typename U, typename PtrTraits = RefPtrTraits<T>> template<typename T, typename U, typename PtrTraits = RefPtrTraits<T>>
inline RefPtr<T> static_ptr_cast(const RefPtr<U>& ptr) inline RefPtr<T> static_ptr_cast(RefPtr<U> const& ptr)
{ {
return RefPtr<T, PtrTraits>(static_cast<const T*>(ptr.ptr())); return RefPtr<T, PtrTraits>(static_cast<const T*>(ptr.ptr()));
} }

View file

@ -17,7 +17,7 @@ public:
using ValueType = ValueT; using ValueType = ValueT;
using ErrorType = ErrorT; using ErrorType = ErrorT;
Result(const ValueType& res) Result(ValueType const& res)
: m_result(res) : m_result(res)
{ {
} }
@ -27,7 +27,7 @@ public:
{ {
} }
Result(const ErrorType& error) Result(ErrorType const& error)
: m_error(error) : m_error(error)
{ {
} }
@ -38,7 +38,7 @@ public:
} }
Result(Result&& other) = default; Result(Result&& other) = default;
Result(const Result& other) = default; Result(Result const& other) = default;
~Result() = default; ~Result() = default;
ValueType& value() ValueType& value()
@ -78,7 +78,7 @@ public:
using ValueType = void; using ValueType = void;
using ErrorType = ErrorT; using ErrorType = ErrorT;
Result(const ErrorType& error) Result(ErrorType const& error)
: m_error(error) : m_error(error)
{ {
} }
@ -90,7 +90,7 @@ public:
Result() = default; Result() = default;
Result(Result&& other) = default; Result(Result&& other) = default;
Result(const Result& other) = default; Result(Result const& other) = default;
~Result() = default; ~Result() = default;
// For compatibility with TRY(). // For compatibility with TRY().

View file

@ -55,7 +55,7 @@ public:
ALWAYS_INLINE constexpr ValueType const* operator->() const { return &m_container[m_index]; } ALWAYS_INLINE constexpr ValueType const* operator->() const { return &m_container[m_index]; }
ALWAYS_INLINE constexpr ValueType* operator->() { return &m_container[m_index]; } ALWAYS_INLINE constexpr ValueType* operator->() { return &m_container[m_index]; }
SimpleReverseIterator& operator=(const SimpleReverseIterator& other) SimpleReverseIterator& operator=(SimpleReverseIterator const& other)
{ {
m_index = other.m_index; m_index = other.m_index;
return *this; return *this;

View file

@ -15,7 +15,7 @@ namespace AK {
template<bool = true> template<bool = true>
class ScopeLogger { class ScopeLogger {
public: public:
ScopeLogger(StringView extra, const SourceLocation& location = SourceLocation::current()) ScopeLogger(StringView extra, SourceLocation const& location = SourceLocation::current())
: m_location(location) : m_location(location)
, m_extra(extra) , m_extra(extra)
{ {

View file

@ -18,7 +18,7 @@ template<typename ListType, typename ElementType>
class SinglyLinkedListIterator { class SinglyLinkedListIterator {
public: public:
SinglyLinkedListIterator() = default; SinglyLinkedListIterator() = default;
bool operator!=(const SinglyLinkedListIterator& other) const { return m_node != other.m_node; } bool operator!=(SinglyLinkedListIterator const& other) const { return m_node != other.m_node; }
SinglyLinkedListIterator& operator++() SinglyLinkedListIterator& operator++()
{ {
if (m_removed) if (m_removed)
@ -80,7 +80,7 @@ private:
public: public:
SinglyLinkedList() = default; SinglyLinkedList() = default;
SinglyLinkedList(const SinglyLinkedList& other) = delete; SinglyLinkedList(SinglyLinkedList const& other) = delete;
SinglyLinkedList(SinglyLinkedList&& other) SinglyLinkedList(SinglyLinkedList&& other)
: m_head(other.m_head) : m_head(other.m_head)
, m_tail(other.m_tail) , m_tail(other.m_tail)
@ -88,7 +88,7 @@ public:
other.m_head = nullptr; other.m_head = nullptr;
other.m_tail = nullptr; other.m_tail = nullptr;
} }
SinglyLinkedList& operator=(const SinglyLinkedList& other) = delete; SinglyLinkedList& operator=(SinglyLinkedList const& other) = delete;
SinglyLinkedList& operator=(SinglyLinkedList&&) = delete; SinglyLinkedList& operator=(SinglyLinkedList&&) = delete;
~SinglyLinkedList() { clear(); } ~SinglyLinkedList() { clear(); }
@ -239,10 +239,10 @@ public:
private: private:
Node* head() { return m_head; } Node* head() { return m_head; }
const Node* head() const { return m_head; } Node const* head() const { return m_head; }
Node* tail() { return m_tail; } Node* tail() { return m_tail; }
const Node* tail() const { return m_tail; } Node const* tail() const { return m_tail; }
Node* m_head { nullptr }; Node* m_head { nullptr };
Node* m_tail { nullptr }; Node* m_tail { nullptr };

View file

@ -25,7 +25,7 @@ public:
, m_closing(closing) , m_closing(closing)
{ {
} }
explicit SourceGenerator(StringBuilder& builder, const MappingType& mapping, char opening = '@', char closing = '@') explicit SourceGenerator(StringBuilder& builder, MappingType const& mapping, char opening = '@', char closing = '@')
: m_builder(builder) : m_builder(builder)
, m_mapping(mapping) , m_mapping(mapping)
, m_opening(opening) , m_opening(opening)
@ -58,14 +58,14 @@ public:
while (!lexer.is_eof()) { while (!lexer.is_eof()) {
// FIXME: It is a bit inconvenient, that 'consume_until' also consumes the 'stop' character, this makes // FIXME: It is a bit inconvenient, that 'consume_until' also consumes the 'stop' character, this makes
// the method less generic because there is no way to check if the 'stop' character ever appeared. // the method less generic because there is no way to check if the 'stop' character ever appeared.
const auto consume_until_without_consuming_stop_character = [&](char stop) { auto const consume_until_without_consuming_stop_character = [&](char stop) {
return lexer.consume_while([&](char ch) { return ch != stop; }); return lexer.consume_while([&](char ch) { return ch != stop; });
}; };
m_builder.append(consume_until_without_consuming_stop_character(m_opening)); m_builder.append(consume_until_without_consuming_stop_character(m_opening));
if (lexer.consume_specific(m_opening)) { if (lexer.consume_specific(m_opening)) {
const auto placeholder = consume_until_without_consuming_stop_character(m_closing); auto const placeholder = consume_until_without_consuming_stop_character(m_closing);
if (!lexer.consume_specific(m_closing)) if (!lexer.consume_specific(m_closing))
VERIFY_NOT_REACHED(); VERIFY_NOT_REACHED();

View file

@ -19,7 +19,7 @@ public:
[[nodiscard]] constexpr StringView filename() const { return StringView(m_file); } [[nodiscard]] constexpr StringView filename() const { return StringView(m_file); }
[[nodiscard]] constexpr u32 line_number() const { return m_line; } [[nodiscard]] constexpr u32 line_number() const { return m_line; }
[[nodiscard]] static constexpr SourceLocation current(const char* const file = __builtin_FILE(), u32 line = __builtin_LINE(), const char* const function = __builtin_FUNCTION()) [[nodiscard]] static constexpr SourceLocation current(char const* const file = __builtin_FILE(), u32 line = __builtin_LINE(), char const* const function = __builtin_FUNCTION())
{ {
return SourceLocation(file, line, function); return SourceLocation(file, line, function);
} }
@ -27,15 +27,15 @@ public:
constexpr SourceLocation() = default; constexpr SourceLocation() = default;
private: private:
constexpr SourceLocation(const char* const file, u32 line, const char* const function) constexpr SourceLocation(char const* const file, u32 line, char const* const function)
: m_function(function) : m_function(function)
, m_file(file) , m_file(file)
, m_line(line) , m_line(line)
{ {
} }
const char* const m_function { nullptr }; char const* const m_function { nullptr };
const char* const m_file { nullptr }; char const* const m_file { nullptr };
const u32 m_line { 0 }; const u32 m_line { 0 };
}; };

View file

@ -75,19 +75,19 @@ constexpr SizeType array_size(T (&)[N])
} }
template<typename T> template<typename T>
constexpr T min(const T& a, const IdentityType<T>& b) constexpr T min(const T& a, IdentityType<T> const& b)
{ {
return b < a ? b : a; return b < a ? b : a;
} }
template<typename T> template<typename T>
constexpr T max(const T& a, const IdentityType<T>& b) constexpr T max(const T& a, IdentityType<T> const& b)
{ {
return a < b ? b : a; return a < b ? b : a;
} }
template<typename T> template<typename T>
constexpr T clamp(const T& value, const IdentityType<T>& min, const IdentityType<T>& max) constexpr T clamp(const T& value, IdentityType<T> const& min, IdentityType<T> const& max)
{ {
VERIFY(max >= min); VERIFY(max >= min);
if (value > max) if (value > max)

View file

@ -16,12 +16,12 @@
namespace AK { namespace AK {
bool String::operator==(const FlyString& fly_string) const bool String::operator==(FlyString const& fly_string) const
{ {
return m_impl == fly_string.impl() || view() == fly_string.view(); return m_impl == fly_string.impl() || view() == fly_string.view();
} }
bool String::operator==(const String& other) const bool String::operator==(String const& other) const
{ {
return m_impl == other.impl() || view() == other.view(); return m_impl == other.impl() || view() == other.view();
} }
@ -31,12 +31,12 @@ bool String::operator==(StringView other) const
return view() == other; return view() == other;
} }
bool String::operator<(const String& other) const bool String::operator<(String const& other) const
{ {
return view() < other.view(); return view() < other.view();
} }
bool String::operator>(const String& other) const bool String::operator>(String const& other) const
{ {
return view() > other.view(); return view() > other.view();
} }
@ -146,7 +146,7 @@ Vector<StringView> String::split_view(Function<bool(char)> separator, bool keep_
return v; return v;
} }
Vector<StringView> String::split_view(const char separator, bool keep_empty) const Vector<StringView> String::split_view(char const separator, bool keep_empty) const
{ {
return split_view([separator](char ch) { return ch == separator; }, keep_empty); return split_view([separator](char ch) { return ch == separator; }, keep_empty);
} }
@ -358,7 +358,7 @@ String escape_html_entities(StringView html)
return builder.to_string(); return builder.to_string();
} }
String::String(const FlyString& string) String::String(FlyString const& string)
: m_impl(string.impl()) : m_impl(string.impl())
{ {
} }
@ -387,27 +387,27 @@ String String::to_titlecase() const
return StringUtils::to_titlecase(*this); return StringUtils::to_titlecase(*this);
} }
bool operator<(const char* characters, const String& string) bool operator<(char const* characters, String const& string)
{ {
return string.view() > characters; return string.view() > characters;
} }
bool operator>=(const char* characters, const String& string) bool operator>=(char const* characters, String const& string)
{ {
return string.view() <= characters; return string.view() <= characters;
} }
bool operator>(const char* characters, const String& string) bool operator>(char const* characters, String const& string)
{ {
return string.view() < characters; return string.view() < characters;
} }
bool operator<=(const char* characters, const String& string) bool operator<=(char const* characters, String const& string)
{ {
return string.view() >= characters; return string.view() >= characters;
} }
bool String::operator==(const char* cstring) const bool String::operator==(char const* cstring) const
{ {
return view() == cstring; return view() == cstring;
} }

View file

@ -48,7 +48,7 @@ public:
{ {
} }
String(const String& other) String(String const& other)
: m_impl(const_cast<String&>(other).m_impl) : m_impl(const_cast<String&>(other).m_impl)
{ {
} }
@ -58,12 +58,12 @@ public:
{ {
} }
String(const char* cstring, ShouldChomp shouldChomp = NoChomp) String(char const* cstring, ShouldChomp shouldChomp = NoChomp)
: m_impl(StringImpl::create(cstring, shouldChomp)) : m_impl(StringImpl::create(cstring, shouldChomp))
{ {
} }
String(const char* cstring, size_t length, ShouldChomp shouldChomp = NoChomp) String(char const* cstring, size_t length, ShouldChomp shouldChomp = NoChomp)
: m_impl(StringImpl::create(cstring, length, shouldChomp)) : m_impl(StringImpl::create(cstring, length, shouldChomp))
{ {
} }
@ -73,12 +73,12 @@ public:
{ {
} }
String(const StringImpl& impl) String(StringImpl const& impl)
: m_impl(const_cast<StringImpl&>(impl)) : m_impl(const_cast<StringImpl&>(impl))
{ {
} }
String(const StringImpl* impl) String(StringImpl const* impl)
: m_impl(const_cast<StringImpl*>(impl)) : m_impl(const_cast<StringImpl*>(impl))
{ {
} }
@ -93,7 +93,7 @@ public:
{ {
} }
String(const FlyString&); String(FlyString const&);
[[nodiscard]] static String repeated(char, size_t count); [[nodiscard]] static String repeated(char, size_t count);
[[nodiscard]] static String repeated(StringView, size_t count); [[nodiscard]] static String repeated(StringView, size_t count);
@ -102,7 +102,7 @@ public:
[[nodiscard]] static String roman_number_from(size_t value); [[nodiscard]] static String roman_number_from(size_t value);
template<class SeparatorType, class CollectionType> template<class SeparatorType, class CollectionType>
[[nodiscard]] static String join(const SeparatorType& separator, const CollectionType& collection, StringView fmtstr = "{}"sv) [[nodiscard]] static String join(SeparatorType const& separator, CollectionType const& collection, StringView fmtstr = "{}"sv)
{ {
StringBuilder builder; StringBuilder builder;
builder.join(separator, collection, fmtstr); builder.join(separator, collection, fmtstr);
@ -169,7 +169,7 @@ public:
[[nodiscard]] ALWAYS_INLINE bool is_empty() const { return length() == 0; } [[nodiscard]] ALWAYS_INLINE bool is_empty() const { return length() == 0; }
[[nodiscard]] ALWAYS_INLINE size_t length() const { return m_impl ? m_impl->length() : 0; } [[nodiscard]] ALWAYS_INLINE size_t length() const { return m_impl ? m_impl->length() : 0; }
// Includes NUL-terminator, if non-nullptr. // Includes NUL-terminator, if non-nullptr.
[[nodiscard]] ALWAYS_INLINE const char* characters() const { return m_impl ? m_impl->characters() : nullptr; } [[nodiscard]] ALWAYS_INLINE char const* characters() const { return m_impl ? m_impl->characters() : nullptr; }
[[nodiscard]] bool copy_characters_to_buffer(char* buffer, size_t buffer_size) const; [[nodiscard]] bool copy_characters_to_buffer(char* buffer, size_t buffer_size) const;
@ -181,13 +181,13 @@ public:
return {}; return {};
} }
[[nodiscard]] ALWAYS_INLINE const char& operator[](size_t i) const [[nodiscard]] ALWAYS_INLINE char const& operator[](size_t i) const
{ {
VERIFY(!is_null()); VERIFY(!is_null());
return (*m_impl)[i]; return (*m_impl)[i];
} }
using ConstIterator = SimpleIterator<const String, const char>; using ConstIterator = SimpleIterator<const String, char const>;
[[nodiscard]] constexpr ConstIterator begin() const { return ConstIterator::begin(*this); } [[nodiscard]] constexpr ConstIterator begin() const { return ConstIterator::begin(*this); }
[[nodiscard]] constexpr ConstIterator end() const { return ConstIterator::end(*this); } [[nodiscard]] constexpr ConstIterator end() const { return ConstIterator::end(*this); }
@ -197,27 +197,27 @@ public:
[[nodiscard]] bool starts_with(char) const; [[nodiscard]] bool starts_with(char) const;
[[nodiscard]] bool ends_with(char) const; [[nodiscard]] bool ends_with(char) const;
bool operator==(const String&) const; bool operator==(String const&) const;
bool operator!=(const String& other) const { return !(*this == other); } bool operator!=(String const& other) const { return !(*this == other); }
bool operator==(StringView) const; bool operator==(StringView) const;
bool operator!=(StringView other) const { return !(*this == other); } bool operator!=(StringView other) const { return !(*this == other); }
bool operator==(const FlyString&) const; bool operator==(FlyString const&) const;
bool operator!=(const FlyString& other) const { return !(*this == other); } bool operator!=(FlyString const& other) const { return !(*this == other); }
bool operator<(const String&) const; bool operator<(String const&) const;
bool operator<(const char*) const; bool operator<(char const*) const;
bool operator>=(const String& other) const { return !(*this < other); } bool operator>=(String const& other) const { return !(*this < other); }
bool operator>=(const char* other) const { return !(*this < other); } bool operator>=(char const* other) const { return !(*this < other); }
bool operator>(const String&) const; bool operator>(String const&) const;
bool operator>(const char*) const; bool operator>(char const*) const;
bool operator<=(const String& other) const { return !(*this > other); } bool operator<=(String const& other) const { return !(*this > other); }
bool operator<=(const char* other) const { return !(*this > other); } bool operator<=(char const* other) const { return !(*this > other); }
bool operator==(const char* cstring) const; bool operator==(char const* cstring) const;
bool operator!=(const char* cstring) const { return !(*this == cstring); } bool operator!=(char const* cstring) const { return !(*this == cstring); }
[[nodiscard]] String isolated_copy() const; [[nodiscard]] String isolated_copy() const;
@ -227,7 +227,7 @@ public:
} }
[[nodiscard]] StringImpl* impl() { return m_impl.ptr(); } [[nodiscard]] StringImpl* impl() { return m_impl.ptr(); }
[[nodiscard]] const StringImpl* impl() const { return m_impl.ptr(); } [[nodiscard]] StringImpl const* impl() const { return m_impl.ptr(); }
String& operator=(String&& other) String& operator=(String&& other)
{ {
@ -236,7 +236,7 @@ public:
return *this; return *this;
} }
String& operator=(const String& other) String& operator=(String const& other)
{ {
if (this != &other) if (this != &other)
m_impl = const_cast<String&>(other).m_impl; m_impl = const_cast<String&>(other).m_impl;
@ -265,17 +265,17 @@ public:
[[nodiscard]] ByteBuffer to_byte_buffer() const; [[nodiscard]] ByteBuffer to_byte_buffer() const;
template<typename BufferType> template<typename BufferType>
[[nodiscard]] static String copy(const BufferType& buffer, ShouldChomp should_chomp = NoChomp) [[nodiscard]] static String copy(BufferType const& buffer, ShouldChomp should_chomp = NoChomp)
{ {
if (buffer.is_empty()) if (buffer.is_empty())
return empty(); return empty();
return String((const char*)buffer.data(), buffer.size(), should_chomp); return String((char const*)buffer.data(), buffer.size(), should_chomp);
} }
[[nodiscard]] static String vformatted(StringView fmtstr, TypeErasedFormatParams&); [[nodiscard]] static String vformatted(StringView fmtstr, TypeErasedFormatParams&);
template<typename... Parameters> template<typename... Parameters>
[[nodiscard]] static String formatted(CheckedFormatString<Parameters...>&& fmtstr, const Parameters&... parameters) [[nodiscard]] static String formatted(CheckedFormatString<Parameters...>&& fmtstr, Parameters const&... parameters)
{ {
VariadicFormatParams variadic_format_parameters { parameters... }; VariadicFormatParams variadic_format_parameters { parameters... };
return vformatted(fmtstr.view(), variadic_format_parameters); return vformatted(fmtstr.view(), variadic_format_parameters);
@ -320,7 +320,7 @@ private:
template<> template<>
struct Traits<String> : public GenericTraits<String> { struct Traits<String> : public GenericTraits<String> {
static unsigned hash(const String& s) { return s.impl() ? s.impl()->hash() : 0; } static unsigned hash(String const& s) { return s.impl() ? s.impl()->hash() : 0; }
}; };
struct CaseInsensitiveStringTraits : public Traits<String> { struct CaseInsensitiveStringTraits : public Traits<String> {
@ -328,10 +328,10 @@ struct CaseInsensitiveStringTraits : public Traits<String> {
static bool equals(String const& a, String const& b) { return a.equals_ignoring_case(b); } static bool equals(String const& a, String const& b) { return a.equals_ignoring_case(b); }
}; };
bool operator<(const char*, const String&); bool operator<(char const*, String const&);
bool operator>=(const char*, const String&); bool operator>=(char const*, String const&);
bool operator>(const char*, const String&); bool operator>(char const*, String const&);
bool operator<=(const char*, const String&); bool operator<=(char const*, String const&);
String escape_html_entities(StringView html); String escape_html_entities(StringView html);

View file

@ -48,7 +48,7 @@ NonnullRefPtr<StringImpl> StringImpl::create_uninitialized(size_t length, char*&
return new_stringimpl; return new_stringimpl;
} }
RefPtr<StringImpl> StringImpl::create(const char* cstring, size_t length, ShouldChomp should_chomp) RefPtr<StringImpl> StringImpl::create(char const* cstring, size_t length, ShouldChomp should_chomp)
{ {
if (!cstring) if (!cstring)
return nullptr; return nullptr;
@ -73,7 +73,7 @@ RefPtr<StringImpl> StringImpl::create(const char* cstring, size_t length, Should
return new_stringimpl; return new_stringimpl;
} }
RefPtr<StringImpl> StringImpl::create(const char* cstring, ShouldChomp shouldChomp) RefPtr<StringImpl> StringImpl::create(char const* cstring, ShouldChomp shouldChomp)
{ {
if (!cstring) if (!cstring)
return nullptr; return nullptr;
@ -86,7 +86,7 @@ RefPtr<StringImpl> StringImpl::create(const char* cstring, ShouldChomp shouldCho
RefPtr<StringImpl> StringImpl::create(ReadonlyBytes bytes, ShouldChomp shouldChomp) RefPtr<StringImpl> StringImpl::create(ReadonlyBytes bytes, ShouldChomp shouldChomp)
{ {
return StringImpl::create(reinterpret_cast<const char*>(bytes.data()), bytes.size(), shouldChomp); return StringImpl::create(reinterpret_cast<char const*>(bytes.data()), bytes.size(), shouldChomp);
} }
RefPtr<StringImpl> StringImpl::create_lowercased(char const* cstring, size_t length) RefPtr<StringImpl> StringImpl::create_lowercased(char const* cstring, size_t length)

View file

@ -25,8 +25,8 @@ size_t allocation_size_for_stringimpl(size_t length);
class StringImpl : public RefCounted<StringImpl> { class StringImpl : public RefCounted<StringImpl> {
public: public:
static NonnullRefPtr<StringImpl> create_uninitialized(size_t length, char*& buffer); static NonnullRefPtr<StringImpl> create_uninitialized(size_t length, char*& buffer);
static RefPtr<StringImpl> create(const char* cstring, ShouldChomp = NoChomp); static RefPtr<StringImpl> create(char const* cstring, ShouldChomp = NoChomp);
static RefPtr<StringImpl> create(const char* cstring, size_t length, ShouldChomp = NoChomp); static RefPtr<StringImpl> create(char const* cstring, size_t length, ShouldChomp = NoChomp);
static RefPtr<StringImpl> create(ReadonlyBytes, ShouldChomp = NoChomp); static RefPtr<StringImpl> create(ReadonlyBytes, ShouldChomp = NoChomp);
static RefPtr<StringImpl> create_lowercased(char const* cstring, size_t length); static RefPtr<StringImpl> create_lowercased(char const* cstring, size_t length);
static RefPtr<StringImpl> create_uppercased(char const* cstring, size_t length); static RefPtr<StringImpl> create_uppercased(char const* cstring, size_t length);
@ -45,18 +45,18 @@ public:
size_t length() const { return m_length; } size_t length() const { return m_length; }
// Includes NUL-terminator. // Includes NUL-terminator.
const char* characters() const { return &m_inline_buffer[0]; } char const* characters() const { return &m_inline_buffer[0]; }
ALWAYS_INLINE ReadonlyBytes bytes() const { return { characters(), length() }; } ALWAYS_INLINE ReadonlyBytes bytes() const { return { characters(), length() }; }
ALWAYS_INLINE StringView view() const { return { characters(), length() }; } ALWAYS_INLINE StringView view() const { return { characters(), length() }; }
const char& operator[](size_t i) const char const& operator[](size_t i) const
{ {
VERIFY(i < m_length); VERIFY(i < m_length);
return characters()[i]; return characters()[i];
} }
bool operator==(const StringImpl& other) const bool operator==(StringImpl const& other) const
{ {
if (length() != other.length()) if (length() != other.length())
return false; return false;

View file

@ -37,11 +37,11 @@ bool matches(StringView str, StringView mask, CaseSensitivity case_sensitivity,
return true; return true;
} }
const char* string_ptr = str.characters_without_null_termination(); char const* string_ptr = str.characters_without_null_termination();
const char* string_start = str.characters_without_null_termination(); char const* string_start = str.characters_without_null_termination();
const char* string_end = string_ptr + str.length(); char const* string_end = string_ptr + str.length();
const char* mask_ptr = mask.characters_without_null_termination(); char const* mask_ptr = mask.characters_without_null_termination();
const char* mask_end = mask_ptr + mask.length(); char const* mask_end = mask_ptr + mask.length();
while (string_ptr < string_end && mask_ptr < mask_end) { while (string_ptr < string_end && mask_ptr < mask_end) {
auto string_start_ptr = string_ptr; auto string_start_ptr = string_ptr;
@ -92,7 +92,7 @@ Optional<T> convert_to_int(StringView str, TrimWhitespace trim_whitespace)
T sign = 1; T sign = 1;
size_t i = 0; size_t i = 0;
const auto characters = string.characters_without_null_termination(); auto const characters = string.characters_without_null_termination();
if (characters[0] == '-' || characters[0] == '+') { if (characters[0] == '-' || characters[0] == '+') {
if (string.length() == 1) if (string.length() == 1)
@ -132,7 +132,7 @@ Optional<T> convert_to_uint(StringView str, TrimWhitespace trim_whitespace)
return {}; return {};
T value = 0; T value = 0;
const auto characters = string.characters_without_null_termination(); auto const characters = string.characters_without_null_termination();
for (size_t i = 0; i < string.length(); i++) { for (size_t i = 0; i < string.length(); i++) {
if (characters[i] < '0' || characters[i] > '9') if (characters[i] < '0' || characters[i] > '9')
@ -165,7 +165,7 @@ Optional<T> convert_to_uint_from_hex(StringView str, TrimWhitespace trim_whitesp
return {}; return {};
T value = 0; T value = 0;
const auto count = string.length(); auto const count = string.length();
const T upper_bound = NumericLimits<T>::max(); const T upper_bound = NumericLimits<T>::max();
for (size_t i = 0; i < count; i++) { for (size_t i = 0; i < count; i++) {
@ -204,7 +204,7 @@ Optional<T> convert_to_uint_from_octal(StringView str, TrimWhitespace trim_white
return {}; return {};
T value = 0; T value = 0;
const auto count = string.length(); auto const count = string.length();
const T upper_bound = NumericLimits<T>::max(); const T upper_bound = NumericLimits<T>::max();
for (size_t i = 0; i < count; i++) { for (size_t i = 0; i < count; i++) {

View file

@ -37,11 +37,11 @@ struct MaskSpan {
size_t start; size_t start;
size_t length; size_t length;
bool operator==(const MaskSpan& other) const bool operator==(MaskSpan const& other) const
{ {
return start == other.start && length == other.length; return start == other.start && length == other.length;
} }
bool operator!=(const MaskSpan& other) const bool operator!=(MaskSpan const& other) const
{ {
return !(*this == other); return !(*this == other);
} }

View file

@ -20,26 +20,26 @@
namespace AK { namespace AK {
#ifndef KERNEL #ifndef KERNEL
StringView::StringView(const String& string) StringView::StringView(String const& string)
: m_characters(string.characters()) : m_characters(string.characters())
, m_length(string.length()) , m_length(string.length())
{ {
} }
StringView::StringView(const FlyString& string) StringView::StringView(FlyString const& string)
: m_characters(string.characters()) : m_characters(string.characters())
, m_length(string.length()) , m_length(string.length())
{ {
} }
#endif #endif
StringView::StringView(const ByteBuffer& buffer) StringView::StringView(ByteBuffer const& buffer)
: m_characters((const char*)buffer.data()) : m_characters((char const*)buffer.data())
, m_length(buffer.size()) , m_length(buffer.size())
{ {
} }
Vector<StringView> StringView::split_view(const char separator, bool keep_empty) const Vector<StringView> StringView::split_view(char const separator, bool keep_empty) const
{ {
StringView seperator_view { &separator, 1 }; StringView seperator_view { &separator, 1 };
return split_view(seperator_view, keep_empty); return split_view(seperator_view, keep_empty);
@ -166,7 +166,7 @@ String StringView::to_titlecase_string() const
StringView StringView::substring_view_starting_from_substring(StringView substring) const StringView StringView::substring_view_starting_from_substring(StringView substring) const
{ {
const char* remaining_characters = substring.characters_without_null_termination(); char const* remaining_characters = substring.characters_without_null_termination();
VERIFY(remaining_characters >= m_characters); VERIFY(remaining_characters >= m_characters);
VERIFY(remaining_characters <= m_characters + m_length); VERIFY(remaining_characters <= m_characters + m_length);
size_t remaining_length = m_length - (remaining_characters - m_characters); size_t remaining_length = m_length - (remaining_characters - m_characters);
@ -175,7 +175,7 @@ StringView StringView::substring_view_starting_from_substring(StringView substri
StringView StringView::substring_view_starting_after_substring(StringView substring) const StringView StringView::substring_view_starting_after_substring(StringView substring) const
{ {
const char* remaining_characters = substring.characters_without_null_termination() + substring.length(); char const* remaining_characters = substring.characters_without_null_termination() + substring.length();
VERIFY(remaining_characters >= m_characters); VERIFY(remaining_characters >= m_characters);
VERIFY(remaining_characters <= m_characters + m_length); VERIFY(remaining_characters <= m_characters + m_length);
size_t remaining_length = m_length - (remaining_characters - m_characters); size_t remaining_length = m_length - (remaining_characters - m_characters);
@ -209,7 +209,7 @@ template Optional<long> StringView::to_uint() const;
template Optional<long long> StringView::to_uint() const; template Optional<long long> StringView::to_uint() const;
#ifndef KERNEL #ifndef KERNEL
bool StringView::operator==(const String& string) const bool StringView::operator==(String const& string) const
{ {
return *this == string.view(); return *this == string.view();
} }

View file

@ -20,34 +20,34 @@ namespace AK {
class StringView { class StringView {
public: public:
ALWAYS_INLINE constexpr StringView() = default; ALWAYS_INLINE constexpr StringView() = default;
ALWAYS_INLINE constexpr StringView(const char* characters, size_t length) ALWAYS_INLINE constexpr StringView(char const* characters, size_t length)
: m_characters(characters) : m_characters(characters)
, m_length(length) , m_length(length)
{ {
if (!is_constant_evaluated()) if (!is_constant_evaluated())
VERIFY(!Checked<uintptr_t>::addition_would_overflow((uintptr_t)characters, length)); VERIFY(!Checked<uintptr_t>::addition_would_overflow((uintptr_t)characters, length));
} }
ALWAYS_INLINE StringView(const unsigned char* characters, size_t length) ALWAYS_INLINE StringView(unsigned char const* characters, size_t length)
: m_characters((const char*)characters) : m_characters((char const*)characters)
, m_length(length) , m_length(length)
{ {
VERIFY(!Checked<uintptr_t>::addition_would_overflow((uintptr_t)characters, length)); VERIFY(!Checked<uintptr_t>::addition_would_overflow((uintptr_t)characters, length));
} }
ALWAYS_INLINE constexpr StringView(const char* cstring) ALWAYS_INLINE constexpr StringView(char const* cstring)
: m_characters(cstring) : m_characters(cstring)
, m_length(cstring ? __builtin_strlen(cstring) : 0) , m_length(cstring ? __builtin_strlen(cstring) : 0)
{ {
} }
ALWAYS_INLINE StringView(ReadonlyBytes bytes) ALWAYS_INLINE StringView(ReadonlyBytes bytes)
: m_characters(reinterpret_cast<const char*>(bytes.data())) : m_characters(reinterpret_cast<char const*>(bytes.data()))
, m_length(bytes.size()) , m_length(bytes.size())
{ {
} }
StringView(const ByteBuffer&); StringView(ByteBuffer const&);
#ifndef KERNEL #ifndef KERNEL
StringView(const String&); StringView(String const&);
StringView(const FlyString&); StringView(FlyString const&);
#endif #endif
explicit StringView(ByteBuffer&&) = delete; explicit StringView(ByteBuffer&&) = delete;
@ -67,9 +67,9 @@ public:
[[nodiscard]] ReadonlyBytes bytes() const { return { m_characters, m_length }; } [[nodiscard]] ReadonlyBytes bytes() const { return { m_characters, m_length }; }
constexpr const char& operator[](size_t index) const { return m_characters[index]; } constexpr char const& operator[](size_t index) const { return m_characters[index]; }
using ConstIterator = SimpleIterator<const StringView, const char>; using ConstIterator = SimpleIterator<const StringView, char const>;
[[nodiscard]] constexpr ConstIterator begin() const { return ConstIterator::begin(*this); } [[nodiscard]] constexpr ConstIterator begin() const { return ConstIterator::begin(*this); }
[[nodiscard]] constexpr ConstIterator end() const { return ConstIterator::end(*this); } [[nodiscard]] constexpr ConstIterator end() const { return ConstIterator::end(*this); }
@ -192,14 +192,14 @@ public:
[[nodiscard]] StringView substring_view_starting_from_substring(StringView substring) const; [[nodiscard]] StringView substring_view_starting_from_substring(StringView substring) const;
[[nodiscard]] StringView substring_view_starting_after_substring(StringView substring) const; [[nodiscard]] StringView substring_view_starting_after_substring(StringView substring) const;
constexpr bool operator==(const char* cstring) const constexpr bool operator==(char const* cstring) const
{ {
if (is_null()) if (is_null())
return cstring == nullptr; return cstring == nullptr;
if (!cstring) if (!cstring)
return false; return false;
// NOTE: `m_characters` is not guaranteed to be null-terminated, but `cstring` is. // NOTE: `m_characters` is not guaranteed to be null-terminated, but `cstring` is.
const char* cp = cstring; char const* cp = cstring;
for (size_t i = 0; i < m_length; ++i) { for (size_t i = 0; i < m_length; ++i) {
if (*cp == '\0') if (*cp == '\0')
return false; return false;
@ -209,13 +209,13 @@ public:
return *cp == '\0'; return *cp == '\0';
} }
constexpr bool operator!=(const char* cstring) const constexpr bool operator!=(char const* cstring) const
{ {
return !(*this == cstring); return !(*this == cstring);
} }
#ifndef KERNEL #ifndef KERNEL
bool operator==(const String&) const; bool operator==(String const&) const;
#endif #endif
[[nodiscard]] constexpr int compare(StringView other) const [[nodiscard]] constexpr int compare(StringView other) const
@ -293,7 +293,7 @@ public:
private: private:
friend class String; friend class String;
const char* m_characters { nullptr }; char const* m_characters { nullptr };
size_t m_length { 0 }; size_t m_length { 0 };
}; };
@ -321,7 +321,7 @@ struct CaseInsensitiveStringViewTraits : public Traits<StringView> {
# define AK_STRING_VIEW_LITERAL_CONSTEVAL consteval # define AK_STRING_VIEW_LITERAL_CONSTEVAL consteval
#endif #endif
[[nodiscard]] ALWAYS_INLINE AK_STRING_VIEW_LITERAL_CONSTEVAL AK::StringView operator"" sv(const char* cstring, size_t length) [[nodiscard]] ALWAYS_INLINE AK_STRING_VIEW_LITERAL_CONSTEVAL AK::StringView operator"" sv(char const* cstring, size_t length)
{ {
return AK::StringView(cstring, length); return AK::StringView(cstring, length);
} }

View file

@ -182,7 +182,7 @@ timeval Time::to_timeval() const
return { static_cast<time_t>(m_seconds), static_cast<suseconds_t>(m_nanoseconds) / 1000 }; return { static_cast<time_t>(m_seconds), static_cast<suseconds_t>(m_nanoseconds) / 1000 };
} }
Time Time::operator+(const Time& other) const Time Time::operator+(Time const& other) const
{ {
VERIFY(m_nanoseconds < 1'000'000'000); VERIFY(m_nanoseconds < 1'000'000'000);
VERIFY(other.m_nanoseconds < 1'000'000'000); VERIFY(other.m_nanoseconds < 1'000'000'000);
@ -222,13 +222,13 @@ Time Time::operator+(const Time& other) const
return Time { new_secs.value(), new_nsecs }; return Time { new_secs.value(), new_nsecs };
} }
Time& Time::operator+=(const Time& other) Time& Time::operator+=(Time const& other)
{ {
*this = *this + other; *this = *this + other;
return *this; return *this;
} }
Time Time::operator-(const Time& other) const Time Time::operator-(Time const& other) const
{ {
VERIFY(m_nanoseconds < 1'000'000'000); VERIFY(m_nanoseconds < 1'000'000'000);
VERIFY(other.m_nanoseconds < 1'000'000'000); VERIFY(other.m_nanoseconds < 1'000'000'000);
@ -247,28 +247,28 @@ Time Time::operator-(const Time& other) const
return Time { (m_seconds + 0x4000'0000'0000'0000) + 0x4000'0000'0000'0000, m_nanoseconds }; return Time { (m_seconds + 0x4000'0000'0000'0000) + 0x4000'0000'0000'0000, m_nanoseconds };
} }
Time& Time::operator-=(const Time& other) Time& Time::operator-=(Time const& other)
{ {
*this = *this - other; *this = *this - other;
return *this; return *this;
} }
bool Time::operator<(const Time& other) const bool Time::operator<(Time const& other) const
{ {
return m_seconds < other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds < other.m_nanoseconds); return m_seconds < other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds < other.m_nanoseconds);
} }
bool Time::operator<=(const Time& other) const bool Time::operator<=(Time const& other) const
{ {
return m_seconds < other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds <= other.m_nanoseconds); return m_seconds < other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds <= other.m_nanoseconds);
} }
bool Time::operator>(const Time& other) const bool Time::operator>(Time const& other) const
{ {
return m_seconds > other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds > other.m_nanoseconds); return m_seconds > other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds > other.m_nanoseconds);
} }
bool Time::operator>=(const Time& other) const bool Time::operator>=(Time const& other) const
{ {
return m_seconds > other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds >= other.m_nanoseconds); return m_seconds > other.m_seconds || (m_seconds == other.m_seconds && m_nanoseconds >= other.m_nanoseconds);
} }

View file

@ -106,8 +106,8 @@ constexpr i64 seconds_since_epoch_to_year(i64 seconds)
class Time { class Time {
public: public:
Time() = default; Time() = default;
Time(const Time&) = default; Time(Time const&) = default;
Time& operator=(const Time&) = default; Time& operator=(Time const&) = default;
Time(Time&& other) Time(Time&& other)
: m_seconds(exchange(other.m_seconds, 0)) : m_seconds(exchange(other.m_seconds, 0))
@ -218,16 +218,16 @@ public:
[[nodiscard]] bool is_zero() const { return (m_seconds == 0) && (m_nanoseconds == 0); } [[nodiscard]] bool is_zero() const { return (m_seconds == 0) && (m_nanoseconds == 0); }
[[nodiscard]] bool is_negative() const { return m_seconds < 0; } [[nodiscard]] bool is_negative() const { return m_seconds < 0; }
bool operator==(const Time& other) const { return this->m_seconds == other.m_seconds && this->m_nanoseconds == other.m_nanoseconds; } bool operator==(Time const& other) const { return this->m_seconds == other.m_seconds && this->m_nanoseconds == other.m_nanoseconds; }
bool operator!=(const Time& other) const { return !(*this == other); } bool operator!=(Time const& other) const { return !(*this == other); }
Time operator+(const Time& other) const; Time operator+(Time const& other) const;
Time& operator+=(const Time& other); Time& operator+=(Time const& other);
Time operator-(const Time& other) const; Time operator-(Time const& other) const;
Time& operator-=(const Time& other); Time& operator-=(Time const& other);
bool operator<(const Time& other) const; bool operator<(Time const& other) const;
bool operator<=(const Time& other) const; bool operator<=(Time const& other) const;
bool operator>(const Time& other) const; bool operator>(Time const& other) const;
bool operator>=(const Time& other) const; bool operator>=(Time const& other) const;
private: private:
constexpr explicit Time(i64 seconds, u32 nanoseconds) constexpr explicit Time(i64 seconds, u32 nanoseconds)
@ -243,7 +243,7 @@ private:
}; };
template<typename TimevalType> template<typename TimevalType>
inline void timeval_sub(const TimevalType& a, const TimevalType& b, TimevalType& result) inline void timeval_sub(TimevalType const& a, TimevalType const& b, TimevalType& result)
{ {
result.tv_sec = a.tv_sec - b.tv_sec; result.tv_sec = a.tv_sec - b.tv_sec;
result.tv_usec = a.tv_usec - b.tv_usec; result.tv_usec = a.tv_usec - b.tv_usec;
@ -254,7 +254,7 @@ inline void timeval_sub(const TimevalType& a, const TimevalType& b, TimevalType&
} }
template<typename TimevalType> template<typename TimevalType>
inline void timeval_add(const TimevalType& a, const TimevalType& b, TimevalType& result) inline void timeval_add(TimevalType const& a, TimevalType const& b, TimevalType& result)
{ {
result.tv_sec = a.tv_sec + b.tv_sec; result.tv_sec = a.tv_sec + b.tv_sec;
result.tv_usec = a.tv_usec + b.tv_usec; result.tv_usec = a.tv_usec + b.tv_usec;
@ -265,7 +265,7 @@ inline void timeval_add(const TimevalType& a, const TimevalType& b, TimevalType&
} }
template<typename TimespecType> template<typename TimespecType>
inline void timespec_sub(const TimespecType& a, const TimespecType& b, TimespecType& result) inline void timespec_sub(TimespecType const& a, TimespecType const& b, TimespecType& result)
{ {
result.tv_sec = a.tv_sec - b.tv_sec; result.tv_sec = a.tv_sec - b.tv_sec;
result.tv_nsec = a.tv_nsec - b.tv_nsec; result.tv_nsec = a.tv_nsec - b.tv_nsec;
@ -276,7 +276,7 @@ inline void timespec_sub(const TimespecType& a, const TimespecType& b, TimespecT
} }
template<typename TimespecType> template<typename TimespecType>
inline void timespec_add(const TimespecType& a, const TimespecType& b, TimespecType& result) inline void timespec_add(TimespecType const& a, TimespecType const& b, TimespecType& result)
{ {
result.tv_sec = a.tv_sec + b.tv_sec; result.tv_sec = a.tv_sec + b.tv_sec;
result.tv_nsec = a.tv_nsec + b.tv_nsec; result.tv_nsec = a.tv_nsec + b.tv_nsec;
@ -287,7 +287,7 @@ inline void timespec_add(const TimespecType& a, const TimespecType& b, TimespecT
} }
template<typename TimespecType, typename TimevalType> template<typename TimespecType, typename TimevalType>
inline void timespec_add_timeval(const TimespecType& a, const TimevalType& b, TimespecType& result) inline void timespec_add_timeval(TimespecType const& a, TimevalType const& b, TimespecType& result)
{ {
result.tv_sec = a.tv_sec + b.tv_sec; result.tv_sec = a.tv_sec + b.tv_sec;
result.tv_nsec = a.tv_nsec + b.tv_usec * 1000; result.tv_nsec = a.tv_nsec + b.tv_usec * 1000;
@ -298,14 +298,14 @@ inline void timespec_add_timeval(const TimespecType& a, const TimevalType& b, Ti
} }
template<typename TimevalType, typename TimespecType> template<typename TimevalType, typename TimespecType>
inline void timeval_to_timespec(const TimevalType& tv, TimespecType& ts) inline void timeval_to_timespec(TimevalType const& tv, TimespecType& ts)
{ {
ts.tv_sec = tv.tv_sec; ts.tv_sec = tv.tv_sec;
ts.tv_nsec = tv.tv_usec * 1000; ts.tv_nsec = tv.tv_usec * 1000;
} }
template<typename TimespecType, typename TimevalType> template<typename TimespecType, typename TimevalType>
inline void timespec_to_timeval(const TimespecType& ts, TimevalType& tv) inline void timespec_to_timeval(TimespecType const& ts, TimevalType& tv)
{ {
tv.tv_sec = ts.tv_sec; tv.tv_sec = ts.tv_sec;
tv.tv_usec = ts.tv_nsec / 1000; tv.tv_usec = ts.tv_nsec / 1000;

View file

@ -40,7 +40,7 @@ public:
} }
template<typename It> template<typename It>
BaseType& traverse_until_last_accessible_node(It& it, const It& end) BaseType& traverse_until_last_accessible_node(It& it, It const& end)
{ {
Trie* node = this; Trie* node = this;
for (; it < end; ++it) { for (; it < end; ++it) {
@ -53,17 +53,17 @@ public:
} }
template<typename It> template<typename It>
const BaseType& traverse_until_last_accessible_node(It& it, const It& end) const { return const_cast<Trie*>(this)->traverse_until_last_accessible_node(it, end); } BaseType const& traverse_until_last_accessible_node(It& it, It const& end) const { return const_cast<Trie*>(this)->traverse_until_last_accessible_node(it, end); }
template<typename It> template<typename It>
BaseType& traverse_until_last_accessible_node(const It& begin, const It& end) BaseType& traverse_until_last_accessible_node(It const& begin, It const& end)
{ {
auto it = begin; auto it = begin;
return const_cast<Trie*>(this)->traverse_until_last_accessible_node(it, end); return const_cast<Trie*>(this)->traverse_until_last_accessible_node(it, end);
} }
template<typename It> template<typename It>
const BaseType& traverse_until_last_accessible_node(const It& begin, const It& end) const BaseType const& traverse_until_last_accessible_node(It const& begin, It const& end) const
{ {
auto it = begin; auto it = begin;
return const_cast<Trie*>(this)->traverse_until_last_accessible_node(it, end); return const_cast<Trie*>(this)->traverse_until_last_accessible_node(it, end);
@ -71,10 +71,10 @@ public:
Optional<MetadataType> metadata() const requires(!IsNullPointer<MetadataType>) { return m_metadata; } Optional<MetadataType> metadata() const requires(!IsNullPointer<MetadataType>) { return m_metadata; }
void set_metadata(MetadataType metadata) requires(!IsNullPointer<MetadataType>) { m_metadata = move(metadata); } void set_metadata(MetadataType metadata) requires(!IsNullPointer<MetadataType>) { m_metadata = move(metadata); }
const MetadataType& metadata_value() const requires(!IsNullPointer<MetadataType>) { return m_metadata.value(); } MetadataType const& metadata_value() const requires(!IsNullPointer<MetadataType>) { return m_metadata.value(); }
MetadataType& metadata_value() requires(!IsNullPointer<MetadataType>) { return m_metadata.value(); } MetadataType& metadata_value() requires(!IsNullPointer<MetadataType>) { return m_metadata.value(); }
const ValueType& value() const { return m_value; } ValueType const& value() const { return m_value; }
ValueType& value() { return m_value; } ValueType& value() { return m_value; }
ErrorOr<Trie*> ensure_child(ValueType value, Optional<MetadataType> metadata = {}) ErrorOr<Trie*> ensure_child(ValueType value, Optional<MetadataType> metadata = {})
@ -99,11 +99,10 @@ public:
template<typename It, typename ProvideMetadataFunction> template<typename It, typename ProvideMetadataFunction>
ErrorOr<BaseType*> insert( ErrorOr<BaseType*> insert(
It& it, const It& end, MetadataType metadata, ProvideMetadataFunction provide_missing_metadata) requires(!IsNullPointer<MetadataType>) It& it, It const& end, MetadataType metadata, ProvideMetadataFunction provide_missing_metadata) requires(!IsNullPointer<MetadataType>)
{ {
Trie* last_root_node = &traverse_until_last_accessible_node(it, end); Trie* last_root_node = &traverse_until_last_accessible_node(it, end);
auto invoke_provide_missing_metadata = [&]<typename... Ts>(Ts && ... args)->ErrorOr<Optional<MetadataType>> auto invoke_provide_missing_metadata = [&]<typename... Ts>(Ts&&... args) -> ErrorOr<Optional<MetadataType>> {
{
if constexpr (SameAs<MetadataType, decltype(provide_missing_metadata(forward<Ts>(args)...))>) if constexpr (SameAs<MetadataType, decltype(provide_missing_metadata(forward<Ts>(args)...))>)
return Optional<MetadataType>(provide_missing_metadata(forward<Ts>(args)...)); return Optional<MetadataType>(provide_missing_metadata(forward<Ts>(args)...));
else else
@ -120,7 +119,7 @@ public:
} }
template<typename It> template<typename It>
ErrorOr<BaseType*> insert(It& it, const It& end) requires(IsNullPointer<MetadataType>) ErrorOr<BaseType*> insert(It& it, It const& end) requires(IsNullPointer<MetadataType>)
{ {
Trie* last_root_node = &traverse_until_last_accessible_node(it, end); Trie* last_root_node = &traverse_until_last_accessible_node(it, end);
for (; it != end; ++it) { for (; it != end; ++it) {
@ -134,14 +133,14 @@ public:
template<typename It, typename ProvideMetadataFunction> template<typename It, typename ProvideMetadataFunction>
ErrorOr<BaseType*> insert( ErrorOr<BaseType*> insert(
const It& begin, const It& end, MetadataType metadata, ProvideMetadataFunction provide_missing_metadata) requires(!IsNullPointer<MetadataType>) It const& begin, It const& end, MetadataType metadata, ProvideMetadataFunction provide_missing_metadata) requires(!IsNullPointer<MetadataType>)
{ {
auto it = begin; auto it = begin;
return insert(it, end, move(metadata), move(provide_missing_metadata)); return insert(it, end, move(metadata), move(provide_missing_metadata));
} }
template<typename It> template<typename It>
ErrorOr<BaseType*> insert(const It& begin, const It& end) requires(IsNullPointer<MetadataType>) ErrorOr<BaseType*> insert(It const& begin, It const& end) requires(IsNullPointer<MetadataType>)
{ {
auto it = begin; auto it = begin;
return insert(it, end); return insert(it, end);

View file

@ -122,7 +122,7 @@ struct Tuple : Detail::Tuple<Ts...> {
{ {
} }
Tuple(const Tuple& other) Tuple(Tuple const& other)
: Tuple(other, Indices()) : Tuple(other, Indices())
{ {
} }
@ -133,7 +133,7 @@ struct Tuple : Detail::Tuple<Ts...> {
return *this; return *this;
} }
Tuple& operator=(const Tuple& other) Tuple& operator=(Tuple const& other)
{ {
set(other, Indices()); set(other, Indices());
return *this; return *this;
@ -185,7 +185,7 @@ private:
} }
template<unsigned... Is> template<unsigned... Is>
Tuple(const Tuple& other, IndexSequence<Is...>) Tuple(Tuple const& other, IndexSequence<Is...>)
: Detail::Tuple<Ts...>(other.get<Is>()...) : Detail::Tuple<Ts...>(other.get<Is>()...)
{ {
} }
@ -197,7 +197,7 @@ private:
} }
template<unsigned... Is> template<unsigned... Is>
void set(const Tuple& other, IndexSequence<Is...>) void set(Tuple const& other, IndexSequence<Is...>)
{ {
((get<Is>() = other.get<Is>()), ...); ((get<Is>() = other.get<Is>()), ...);
} }

View file

@ -61,7 +61,7 @@ constexpr u64 TiB = KiB * KiB * KiB * KiB;
constexpr u64 PiB = KiB * KiB * KiB * KiB * KiB; constexpr u64 PiB = KiB * KiB * KiB * KiB * KiB;
constexpr u64 EiB = KiB * KiB * KiB * KiB * KiB * KiB; constexpr u64 EiB = KiB * KiB * KiB * KiB * KiB * KiB;
namespace std { //NOLINT(cert-dcl58-cpp) nullptr_t must be in ::std:: for some analysis tools namespace std { // NOLINT(cert-dcl58-cpp) nullptr_t must be in ::std:: for some analysis tools
using nullptr_t = decltype(nullptr); using nullptr_t = decltype(nullptr);
} }

View file

@ -21,7 +21,7 @@ class SourceLocation {
AK_MAKE_NONCOPYABLE(SourceLocation); AK_MAKE_NONCOPYABLE(SourceLocation);
public: public:
const char* filename() const { return m_filename; } char const* filename() const { return m_filename; }
u32 line() const { return m_line; } u32 line() const { return m_line; }
u32 column() const { return m_column; } u32 column() const { return m_column; }
@ -52,7 +52,7 @@ public:
} }
private: private:
const char* m_filename { nullptr }; char const* m_filename { nullptr };
u32 m_line { 0 }; u32 m_line { 0 };
u32 m_column { 0 }; u32 m_column { 0 };
}; };
@ -65,7 +65,7 @@ enum TypeKind : u16 {
class TypeDescriptor { class TypeDescriptor {
public: public:
const char* name() const { return m_name; } char const* name() const { return m_name; }
TypeKind kind() const { return (TypeKind)m_kind; } TypeKind kind() const { return (TypeKind)m_kind; }
bool is_integer() const { return kind() == TypeKind::Integer; } bool is_integer() const { return kind() == TypeKind::Integer; }
bool is_signed() const { return m_info & 1; } bool is_signed() const { return m_info & 1; }
@ -80,7 +80,7 @@ private:
struct InvalidValueData { struct InvalidValueData {
SourceLocation location; SourceLocation location;
const TypeDescriptor& type; TypeDescriptor const& type;
}; };
struct NonnullArgData { struct NonnullArgData {
@ -95,29 +95,29 @@ struct NonnullReturnData {
struct OverflowData { struct OverflowData {
SourceLocation location; SourceLocation location;
const TypeDescriptor& type; TypeDescriptor const& type;
}; };
struct VLABoundData { struct VLABoundData {
SourceLocation location; SourceLocation location;
const TypeDescriptor& type; TypeDescriptor const& type;
}; };
struct ShiftOutOfBoundsData { struct ShiftOutOfBoundsData {
SourceLocation location; SourceLocation location;
const TypeDescriptor& lhs_type; TypeDescriptor const& lhs_type;
const TypeDescriptor& rhs_type; TypeDescriptor const& rhs_type;
}; };
struct OutOfBoundsData { struct OutOfBoundsData {
SourceLocation location; SourceLocation location;
const TypeDescriptor& array_type; TypeDescriptor const& array_type;
const TypeDescriptor& index_type; TypeDescriptor const& index_type;
}; };
struct TypeMismatchData { struct TypeMismatchData {
SourceLocation location; SourceLocation location;
const TypeDescriptor& type; TypeDescriptor const& type;
u8 log_alignment; u8 log_alignment;
u8 type_check_kind; u8 type_check_kind;
}; };
@ -125,7 +125,7 @@ struct TypeMismatchData {
struct AlignmentAssumptionData { struct AlignmentAssumptionData {
SourceLocation location; SourceLocation location;
SourceLocation assumption_location; SourceLocation assumption_location;
const TypeDescriptor& type; TypeDescriptor const& type;
}; };
struct UnreachableData { struct UnreachableData {
@ -134,8 +134,8 @@ struct UnreachableData {
struct ImplicitConversionData { struct ImplicitConversionData {
SourceLocation location; SourceLocation location;
const TypeDescriptor& from_type; TypeDescriptor const& from_type;
const TypeDescriptor& to_type; TypeDescriptor const& to_type;
/* ImplicitConversionCheckKind */ unsigned char kind; /* ImplicitConversionCheckKind */ unsigned char kind;
}; };

View file

@ -83,7 +83,7 @@ public:
} }
Span<const u8> bytes() const Span<const u8> bytes() const
{ {
return Span<const u8>(reinterpret_cast<const u8*>(this), sizeof(R)); return Span<const u8>(reinterpret_cast<u8 const*>(this), sizeof(R));
} }
template<Unsigned U> template<Unsigned U>
@ -417,7 +417,7 @@ public:
return { lower, higher }; return { lower, higher };
} }
constexpr R operator+(const bool& other) const constexpr R operator+(bool const& other) const
{ {
bool carry = false; // unused bool carry = false; // unused
return addc((u8)other, carry); return addc((u8)other, carry);
@ -429,7 +429,7 @@ public:
return addc(other, carry); return addc(other, carry);
} }
constexpr R operator-(const bool& other) const constexpr R operator-(bool const& other) const
{ {
bool carry = false; // unused bool carry = false; // unused
return subc((u8)other, carry); return subc((u8)other, carry);
@ -491,9 +491,9 @@ public:
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdiv-by-zero" #pragma GCC diagnostic ignored "-Wdiv-by-zero"
if (!divisor) { if (!divisor) {
volatile int x = 1; int volatile x = 1;
volatile int y = 0; int volatile y = 0;
[[maybe_unused]] volatile int z = x / y; [[maybe_unused]] int volatile z = x / y;
} }
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
@ -796,13 +796,13 @@ private:
// reverse operators // reverse operators
template<Unsigned U, Unsigned T> template<Unsigned U, Unsigned T>
requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator<(const U a, const UFixedBigInt<T>& b) { return b >= a; } requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator<(const U a, UFixedBigInt<T> const& b) { return b >= a; }
template<Unsigned U, Unsigned T> template<Unsigned U, Unsigned T>
requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator>(const U a, const UFixedBigInt<T>& b) { return b <= a; } requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator>(const U a, UFixedBigInt<T> const& b) { return b <= a; }
template<Unsigned U, Unsigned T> template<Unsigned U, Unsigned T>
requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator<=(const U a, const UFixedBigInt<T>& b) { return b > a; } requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator<=(const U a, UFixedBigInt<T> const& b) { return b > a; }
template<Unsigned U, Unsigned T> template<Unsigned U, Unsigned T>
requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator>=(const U a, const UFixedBigInt<T>& b) { return b < a; } requires(sizeof(U) < sizeof(T) * 2) constexpr bool operator>=(const U a, UFixedBigInt<T> const& b) { return b < a; }
template<Unsigned T> template<Unsigned T>
struct Formatter<UFixedBigInt<T>> : StandardFormatter { struct Formatter<UFixedBigInt<T>> : StandardFormatter {

View file

@ -124,7 +124,7 @@ bool UUID::operator==(const UUID& other) const
bool UUID::is_zero() const bool UUID::is_zero() const
{ {
return all_of(m_uuid_buffer, [](const auto octet) { return octet == 0; }); return all_of(m_uuid_buffer, [](auto const octet) { return octet == 0; });
} }
} }

View file

@ -25,11 +25,11 @@ public:
Userspace() = default; Userspace() = default;
// Disable default implementations that would use surprising integer promotion. // Disable default implementations that would use surprising integer promotion.
bool operator==(const Userspace&) const = delete; bool operator==(Userspace const&) const = delete;
bool operator<=(const Userspace&) const = delete; bool operator<=(Userspace const&) const = delete;
bool operator>=(const Userspace&) const = delete; bool operator>=(Userspace const&) const = delete;
bool operator<(const Userspace&) const = delete; bool operator<(Userspace const&) const = delete;
bool operator>(const Userspace&) const = delete; bool operator>(Userspace const&) const = delete;
#ifdef KERNEL #ifdef KERNEL
Userspace(FlatPtr ptr) Userspace(FlatPtr ptr)
@ -62,7 +62,7 @@ private:
}; };
template<typename T, typename U> template<typename T, typename U>
inline Userspace<T> static_ptr_cast(const Userspace<U>& ptr) inline Userspace<T> static_ptr_cast(Userspace<U> const& ptr)
{ {
#ifdef KERNEL #ifdef KERNEL
auto casted_ptr = static_cast<T>(ptr.unsafe_userspace_ptr()); auto casted_ptr = static_cast<T>(ptr.unsafe_userspace_ptr());

View file

@ -21,11 +21,11 @@ public:
Utf32CodePointIterator() = default; Utf32CodePointIterator() = default;
~Utf32CodePointIterator() = default; ~Utf32CodePointIterator() = default;
bool operator==(const Utf32CodePointIterator& other) const bool operator==(Utf32CodePointIterator const& other) const
{ {
return m_ptr == other.m_ptr && m_length == other.m_length; return m_ptr == other.m_ptr && m_length == other.m_length;
} }
bool operator!=(const Utf32CodePointIterator& other) const bool operator!=(Utf32CodePointIterator const& other) const
{ {
return !(*this == other); return !(*this == other);
} }
@ -36,7 +36,7 @@ public:
m_length--; m_length--;
return *this; return *this;
} }
ssize_t operator-(const Utf32CodePointIterator& other) const ssize_t operator-(Utf32CodePointIterator const& other) const
{ {
return m_ptr - other.m_ptr; return m_ptr - other.m_ptr;
} }
@ -50,12 +50,12 @@ public:
bool done() const { return !m_length; } bool done() const { return !m_length; }
private: private:
Utf32CodePointIterator(const u32* ptr, size_t length) Utf32CodePointIterator(u32 const* ptr, size_t length)
: m_ptr(ptr) : m_ptr(ptr)
, m_length((ssize_t)length) , m_length((ssize_t)length)
{ {
} }
const u32* m_ptr { nullptr }; u32 const* m_ptr { nullptr };
ssize_t m_length { -1 }; ssize_t m_length { -1 };
}; };
@ -64,7 +64,7 @@ public:
using Iterator = Utf32CodePointIterator; using Iterator = Utf32CodePointIterator;
Utf32View() = default; Utf32View() = default;
Utf32View(const u32* code_points, size_t length) Utf32View(u32 const* code_points, size_t length)
: m_code_points(code_points) : m_code_points(code_points)
, m_length(length) , m_length(length)
{ {
@ -89,12 +89,12 @@ public:
u32 operator[](size_t index) const { return at(index); } u32 operator[](size_t index) const { return at(index); }
const u32* code_points() const { return m_code_points; } u32 const* code_points() const { return m_code_points; }
bool is_empty() const { return m_length == 0; } bool is_empty() const { return m_length == 0; }
bool is_null() const { return !m_code_points; } bool is_null() const { return !m_code_points; }
size_t length() const { return m_length; } size_t length() const { return m_length; }
size_t iterator_offset(const Utf32CodePointIterator& it) const size_t iterator_offset(Utf32CodePointIterator const& it) const
{ {
VERIFY(it.m_ptr >= m_code_points); VERIFY(it.m_ptr >= m_code_points);
VERIFY(it.m_ptr < m_code_points + m_length); VERIFY(it.m_ptr < m_code_points + m_length);
@ -110,16 +110,16 @@ public:
} }
private: private:
const u32* begin_ptr() const u32 const* begin_ptr() const
{ {
return m_code_points; return m_code_points;
} }
const u32* end_ptr() const u32 const* end_ptr() const
{ {
return m_code_points + m_length; return m_code_points + m_length;
} }
const u32* m_code_points { nullptr }; u32 const* m_code_points { nullptr };
size_t m_length { 0 }; size_t m_length { 0 };
}; };

View file

@ -22,7 +22,7 @@ Utf8CodePointIterator Utf8View::iterator_at_byte_offset(size_t byte_offset) cons
return end(); return end();
} }
size_t Utf8View::byte_offset_of(const Utf8CodePointIterator& it) const size_t Utf8View::byte_offset_of(Utf8CodePointIterator const& it) const
{ {
VERIFY(it.m_ptr >= begin_ptr()); VERIFY(it.m_ptr >= begin_ptr());
VERIFY(it.m_ptr <= end_ptr()); VERIFY(it.m_ptr <= end_ptr());
@ -129,7 +129,7 @@ size_t Utf8View::calculate_length() const
return length; return length;
} }
bool Utf8View::starts_with(const Utf8View& start) const bool Utf8View::starts_with(Utf8View const& start) const
{ {
if (start.is_empty()) if (start.is_empty())
return true; return true;
@ -156,7 +156,7 @@ bool Utf8View::contains(u32 needle) const
return false; return false;
} }
Utf8View Utf8View::trim(const Utf8View& characters, TrimMode mode) const Utf8View Utf8View::trim(Utf8View const& characters, TrimMode mode) const
{ {
size_t substring_start = 0; size_t substring_start = 0;
size_t substring_length = byte_length(); size_t substring_length = byte_length();

View file

@ -29,7 +29,7 @@ public:
// NOTE: This returns {} if the peek is at or past EOF. // NOTE: This returns {} if the peek is at or past EOF.
Optional<u32> peek(size_t offset = 0) const; Optional<u32> peek(size_t offset = 0) const;
ssize_t operator-(const Utf8CodePointIterator& other) const ssize_t operator-(Utf8CodePointIterator const& other) const
{ {
return m_ptr - other.m_ptr; return m_ptr - other.m_ptr;
} }
@ -80,9 +80,9 @@ public:
Utf8CodePointIterator end() const { return { end_ptr(), 0 }; } Utf8CodePointIterator end() const { return { end_ptr(), 0 }; }
Utf8CodePointIterator iterator_at_byte_offset(size_t) const; Utf8CodePointIterator iterator_at_byte_offset(size_t) const;
const unsigned char* bytes() const { return begin_ptr(); } unsigned char const* bytes() const { return begin_ptr(); }
size_t byte_length() const { return m_string.length(); } size_t byte_length() const { return m_string.length(); }
size_t byte_offset_of(const Utf8CodePointIterator&) const; size_t byte_offset_of(Utf8CodePointIterator const&) const;
size_t byte_offset_of(size_t code_point_offset) const; size_t byte_offset_of(size_t code_point_offset) const;
Utf8View substring_view(size_t byte_offset, size_t byte_length) const { return Utf8View { m_string.substring_view(byte_offset, byte_length) }; } Utf8View substring_view(size_t byte_offset, size_t byte_length) const { return Utf8View { m_string.substring_view(byte_offset, byte_length) }; }
@ -92,12 +92,12 @@ public:
bool is_empty() const { return m_string.is_empty(); } bool is_empty() const { return m_string.is_empty(); }
bool is_null() const { return m_string.is_null(); } bool is_null() const { return m_string.is_null(); }
bool starts_with(const Utf8View&) const; bool starts_with(Utf8View const&) const;
bool contains(u32) const; bool contains(u32) const;
Utf8View trim(const Utf8View& characters, TrimMode mode = TrimMode::Both) const; Utf8View trim(Utf8View const& characters, TrimMode mode = TrimMode::Both) const;
size_t iterator_offset(const Utf8CodePointIterator& it) const size_t iterator_offset(Utf8CodePointIterator const& it) const
{ {
return byte_offset_of(it); return byte_offset_of(it);
} }

View file

@ -62,7 +62,7 @@ struct Variant<IndexType, InitialIndex, F, Ts...> {
Variant<IndexType, InitialIndex + 1, Ts...>::move_(old_id, old_data, new_data); Variant<IndexType, InitialIndex + 1, Ts...>::move_(old_id, old_data, new_data);
} }
ALWAYS_INLINE static void copy_(IndexType old_id, const void* old_data, void* new_data) ALWAYS_INLINE static void copy_(IndexType old_id, void const* old_data, void* new_data)
{ {
if (old_id == current_index) if (old_id == current_index)
new (new_data) F(*bit_cast<F const*>(old_data)); new (new_data) F(*bit_cast<F const*>(old_data));
@ -75,7 +75,7 @@ template<typename IndexType, IndexType InitialIndex>
struct Variant<IndexType, InitialIndex> { struct Variant<IndexType, InitialIndex> {
ALWAYS_INLINE static void delete_(IndexType, void*) { } ALWAYS_INLINE static void delete_(IndexType, void*) { }
ALWAYS_INLINE static void move_(IndexType, void*, void*) { } ALWAYS_INLINE static void move_(IndexType, void*, void*) { }
ALWAYS_INLINE static void copy_(IndexType, const void*, void*) { } ALWAYS_INLINE static void copy_(IndexType, void const*, void*) { }
}; };
template<typename IndexType, typename... Ts> template<typename IndexType, typename... Ts>
@ -97,7 +97,7 @@ struct VisitImpl {
} }
template<typename Self, typename Visitor, IndexType CurrentIndex = 0> template<typename Self, typename Visitor, IndexType CurrentIndex = 0>
ALWAYS_INLINE static constexpr decltype(auto) visit(Self& self, IndexType id, const void* data, Visitor&& visitor) requires(CurrentIndex < sizeof...(Ts)) ALWAYS_INLINE static constexpr decltype(auto) visit(Self& self, IndexType id, void const* data, Visitor&& visitor) requires(CurrentIndex < sizeof...(Ts))
{ {
using T = typename TypeList<Ts...>::template Type<CurrentIndex>; using T = typename TypeList<Ts...>::template Type<CurrentIndex>;
@ -239,7 +239,7 @@ public:
} }
template<typename... NewTs> template<typename... NewTs>
Variant(const Variant<NewTs...>& old) requires((can_contain<NewTs>() && ...)) Variant(Variant<NewTs...> const& old) requires((can_contain<NewTs>() && ...))
: Variant(old.template downcast<Ts...>()) : Variant(old.template downcast<Ts...>())
{ {
} }
@ -254,8 +254,8 @@ public:
} }
#ifdef AK_HAS_CONDITIONALLY_TRIVIAL #ifdef AK_HAS_CONDITIONALLY_TRIVIAL
Variant(const Variant&) requires(!(IsCopyConstructible<Ts> && ...)) = delete; Variant(Variant const&) requires(!(IsCopyConstructible<Ts> && ...)) = delete;
Variant(const Variant&) = default; Variant(Variant const&) = default;
Variant(Variant&&) requires(!(IsMoveConstructible<Ts> && ...)) = delete; Variant(Variant&&) requires(!(IsMoveConstructible<Ts> && ...)) = delete;
Variant(Variant&&) = default; Variant(Variant&&) = default;
@ -263,14 +263,14 @@ public:
~Variant() requires(!(IsDestructible<Ts> && ...)) = delete; ~Variant() requires(!(IsDestructible<Ts> && ...)) = delete;
~Variant() = default; ~Variant() = default;
Variant& operator=(const Variant&) requires(!(IsCopyConstructible<Ts> && ...) || !(IsDestructible<Ts> && ...)) = delete; Variant& operator=(Variant const&) requires(!(IsCopyConstructible<Ts> && ...) || !(IsDestructible<Ts> && ...)) = delete;
Variant& operator=(const Variant&) = default; Variant& operator=(Variant const&) = default;
Variant& operator=(Variant&&) requires(!(IsMoveConstructible<Ts> && ...) || !(IsDestructible<Ts> && ...)) = delete; Variant& operator=(Variant&&) requires(!(IsMoveConstructible<Ts> && ...) || !(IsDestructible<Ts> && ...)) = delete;
Variant& operator=(Variant&&) = default; Variant& operator=(Variant&&) = default;
#endif #endif
ALWAYS_INLINE Variant(const Variant& old) ALWAYS_INLINE Variant(Variant const& old)
#ifdef AK_HAS_CONDITIONALLY_TRIVIAL #ifdef AK_HAS_CONDITIONALLY_TRIVIAL
requires(!(IsTriviallyCopyConstructible<Ts> && ...)) requires(!(IsTriviallyCopyConstructible<Ts> && ...))
#endif #endif
@ -303,7 +303,7 @@ public:
Helper::delete_(m_index, m_data); Helper::delete_(m_index, m_data);
} }
ALWAYS_INLINE Variant& operator=(const Variant& other) ALWAYS_INLINE Variant& operator=(Variant const& other)
#ifdef AK_HAS_CONDITIONALLY_TRIVIAL #ifdef AK_HAS_CONDITIONALLY_TRIVIAL
requires(!(IsTriviallyCopyConstructible<Ts> && ...) || !(IsTriviallyDestructible<Ts> && ...)) requires(!(IsTriviallyCopyConstructible<Ts> && ...) || !(IsTriviallyDestructible<Ts> && ...))
#endif #endif
@ -418,7 +418,7 @@ public:
Variant<NewTs...> downcast() const& Variant<NewTs...> downcast() const&
{ {
Variant<NewTs...> instance { Variant<NewTs...>::invalid_index, Detail::VariantConstructTag {} }; Variant<NewTs...> instance { Variant<NewTs...>::invalid_index, Detail::VariantConstructTag {} };
visit([&](const auto& value) { visit([&](auto const& value) {
if constexpr (Variant<NewTs...>::template can_contain<RemoveCVReference<decltype(value)>>()) if constexpr (Variant<NewTs...>::template can_contain<RemoveCVReference<decltype(value)>>())
instance.set(value, Detail::VariantNoClearTag {}); instance.set(value, Detail::VariantNoClearTag {});
}); });

View file

@ -23,7 +23,7 @@ public:
WeakPtr() = default; WeakPtr() = default;
template<typename U> template<typename U>
WeakPtr(const WeakPtr<U>& other) requires(IsBaseOf<T, U>) WeakPtr(WeakPtr<U> const& other) requires(IsBaseOf<T, U>)
: m_link(other.m_link) : m_link(other.m_link)
{ {
} }
@ -42,9 +42,9 @@ public:
} }
template<typename U> template<typename U>
WeakPtr& operator=(const WeakPtr<U>& other) requires(IsBaseOf<T, U>) WeakPtr& operator=(WeakPtr<U> const& other) requires(IsBaseOf<T, U>)
{ {
if ((const void*)this != (const void*)&other) if ((void const*)this != (void const*)&other)
m_link = other.m_link; m_link = other.m_link;
return *this; return *this;
} }
@ -99,7 +99,7 @@ public:
} }
template<typename U> template<typename U>
WeakPtr& operator=(const RefPtr<U>& object) requires(IsBaseOf<T, U>) WeakPtr& operator=(RefPtr<U> const& object) requires(IsBaseOf<T, U>)
{ {
if (object) if (object)
m_link = object->template make_weak_ptr<U>().take_link(); m_link = object->template make_weak_ptr<U>().take_link();
@ -109,7 +109,7 @@ public:
} }
template<typename U> template<typename U>
WeakPtr& operator=(const NonnullRefPtr<U>& object) requires(IsBaseOf<T, U>) WeakPtr& operator=(NonnullRefPtr<U> const& object) requires(IsBaseOf<T, U>)
{ {
m_link = object->template make_weak_ptr<U>().take_link(); m_link = object->template make_weak_ptr<U>().take_link();
return *this; return *this;
@ -141,7 +141,7 @@ public:
[[nodiscard]] RefPtr<WeakLink> take_link() { return move(m_link); } [[nodiscard]] RefPtr<WeakLink> take_link() { return move(m_link); }
private: private:
WeakPtr(const RefPtr<WeakLink>& link) WeakPtr(RefPtr<WeakLink> const& link)
: m_link(link) : m_link(link)
{ {
} }

View file

@ -22,7 +22,7 @@ void* operator new(size_t size)
return ptr; return ptr;
} }
void* operator new(size_t size, const std::nothrow_t&) noexcept void* operator new(size_t size, std::nothrow_t const&) noexcept
{ {
return malloc(size); return malloc(size);
} }
@ -44,7 +44,7 @@ void* operator new[](size_t size)
return ptr; return ptr;
} }
void* operator new[](size_t size, const std::nothrow_t&) noexcept void* operator new[](size_t size, std::nothrow_t const&) noexcept
{ {
return malloc(size); return malloc(size);
} }

View file

@ -13,20 +13,20 @@
# include <AK/Types.h> # include <AK/Types.h>
# include <stdarg.h> # include <stdarg.h>
extern "C" { extern "C" {
void dbgputstr(const char*, size_t); void dbgputstr(char const*, size_t);
int sprintf(char* buf, const char* fmt, ...) __attribute__((format(printf, 2, 3))); int sprintf(char* buf, char const* fmt, ...) __attribute__((format(printf, 2, 3)));
int snprintf(char* buffer, size_t, const char* fmt, ...) __attribute__((format(printf, 3, 4))); int snprintf(char* buffer, size_t, char const* fmt, ...) __attribute__((format(printf, 3, 4)));
} }
# endif # endif
#else #else
# include <stdio.h> # include <stdio.h>
inline void dbgputstr(const char* characters, size_t length) inline void dbgputstr(char const* characters, size_t length)
{ {
fwrite(characters, 1, length, stderr); fwrite(characters, 1, length, stderr);
} }
#endif #endif
template<size_t N> template<size_t N>
inline void dbgputstr(const char (&array)[N]) inline void dbgputstr(char const (&array)[N])
{ {
return ::dbgputstr(array, N); return ::dbgputstr(array, N);
} }

View file

@ -29,7 +29,7 @@ struct [[gnu::packed]] InodeWatcherEvent {
Type type { Type::Invalid }; Type type { Type::Invalid };
size_t name_length { 0 }; size_t name_length { 0 };
// This is a VLA which is written during the read() from the descriptor. // This is a VLA which is written during the read() from the descriptor.
const char name[]; char const name[];
}; };
AK_ENUM_BITWISE_OPERATORS(InodeWatcherEvent::Type); AK_ENUM_BITWISE_OPERATORS(InodeWatcherEvent::Type);

View file

@ -125,7 +125,7 @@ enum KeyCode : u8 {
Key_Shift Key_Shift
= Key_LeftShift, = Key_LeftShift,
}; };
const int key_code_count = Key_Menu; int const key_code_count = Key_Menu;
enum KeyModifier { enum KeyModifier {
Mod_None = 0x00, Mod_None = 0x00,
@ -155,7 +155,7 @@ struct KeyEvent {
bool is_press() const { return flags & Is_Press; } bool is_press() const { return flags & Is_Press; }
}; };
inline const char* key_code_to_string(KeyCode key) inline char const* key_code_to_string(KeyCode key)
{ {
switch (key) { switch (key) {
#define __ENUMERATE_KEY_CODE(name, ui_name) \ #define __ENUMERATE_KEY_CODE(name, ui_name) \

View file

@ -218,7 +218,7 @@ constexpr StringView to_string(Function function)
#ifdef __serenity__ #ifdef __serenity__
struct StringArgument { struct StringArgument {
const char* characters; char const* characters;
size_t length { 0 }; size_t length { 0 };
}; };
@ -262,7 +262,7 @@ struct SC_poll_params {
struct pollfd* fds; struct pollfd* fds;
unsigned nfds; unsigned nfds;
const struct timespec* timeout; const struct timespec* timeout;
const u32* sigmask; u32 const* sigmask;
}; };
struct SC_clock_nanosleep_params { struct SC_clock_nanosleep_params {
@ -288,7 +288,7 @@ struct SC_getsockopt_params {
}; };
struct SC_setsockopt_params { struct SC_setsockopt_params {
const void* value; void const* value;
int sockfd; int sockfd;
int level; int level;
int option; int option;
@ -319,7 +319,7 @@ struct SC_futex_params {
int futex_op; int futex_op;
u32 val; u32 val;
union { union {
const timespec* timeout; timespec const* timeout;
uintptr_t val2; uintptr_t val2;
}; };
u32* userspace_address2; u32* userspace_address2;
@ -327,11 +327,11 @@ struct SC_futex_params {
}; };
struct SC_setkeymap_params { struct SC_setkeymap_params {
const u32* map; u32 const* map;
const u32* shift_map; u32 const* shift_map;
const u32* alt_map; u32 const* alt_map;
const u32* altgr_map; u32 const* altgr_map;
const u32* shift_altgr_map; u32 const* shift_altgr_map;
StringArgument map_name; StringArgument map_name;
}; };

View file

@ -23,7 +23,7 @@ struct VirGL3DResourceSpec {
}; };
struct VirGLCommandBuffer { struct VirGLCommandBuffer {
const u32* data; u32 const* data;
u32 num_elems; u32 num_elems;
}; };

View file

@ -92,8 +92,8 @@ void __asan_handle_no_return(void)
{ {
} }
void __asan_before_dynamic_init(const char*); void __asan_before_dynamic_init(char const*);
void __asan_before_dynamic_init(const char* /* module_name */) void __asan_before_dynamic_init(char const* /* module_name */)
{ {
} }

View file

@ -44,7 +44,7 @@ struct ProcessorMessage {
} flush_tlb; } flush_tlb;
}; };
volatile bool async; bool volatile async;
ProcessorMessageEntry* per_proc_entries; ProcessorMessageEntry* per_proc_entries;

View file

@ -11,7 +11,7 @@ namespace Prekernel {
void drop_to_exception_level_1(); void drop_to_exception_level_1();
void init_prekernel_page_tables(); void init_prekernel_page_tables();
[[noreturn]] void panic(const char* msg); [[noreturn]] void panic(char const* msg);
[[noreturn]] void halt(); [[noreturn]] void halt();

View file

@ -11,7 +11,7 @@
namespace Prekernel { namespace Prekernel {
[[noreturn]] void panic(const char* msg) [[noreturn]] void panic(char const* msg)
{ {
auto& uart = Prekernel::UART::the(); auto& uart = Prekernel::UART::the();

View file

@ -91,8 +91,8 @@ private:
} }
} }
const u64* m_start; u64 const* m_start;
const u64* m_end; u64 const* m_end;
u64* m_current; u64* m_current;
}; };
} }
@ -181,7 +181,7 @@ static void activate_mmu()
// Enable MMU in the system control register // Enable MMU in the system control register
Aarch64::SCTLR_EL1 sctlr_el1 = Aarch64::SCTLR_EL1::read(); Aarch64::SCTLR_EL1 sctlr_el1 = Aarch64::SCTLR_EL1::read();
sctlr_el1.M = 1; //Enable MMU sctlr_el1.M = 1; // Enable MMU
Aarch64::SCTLR_EL1::write(sctlr_el1); Aarch64::SCTLR_EL1::write(sctlr_el1);
Aarch64::Asm::flush(); Aarch64::Asm::flush();

View file

@ -17,8 +17,8 @@ namespace Kernel {
class Thread; class Thread;
//FIXME This needs to go behind some sort of platform abstraction // FIXME This needs to go behind some sort of platform abstraction
// it is used between Thread and Processor. // it is used between Thread and Processor.
struct [[gnu::aligned(16)]] FPUState struct [[gnu::aligned(16)]] FPUState
{ {
u8 buffer[512]; u8 buffer[512];

View file

@ -22,7 +22,7 @@ public:
void send(u32 c); void send(u32 c);
u32 receive(); u32 receive();
void print_str(const char* s) void print_str(char const* s)
{ {
while (*s) while (*s)
send(*s++); send(*s++);
@ -42,7 +42,7 @@ public:
void print_hex(u64 n) void print_hex(u64 n)
{ {
char buf[17]; char buf[17];
static const char* digits = "0123456789ABCDEF"; static char const* digits = "0123456789ABCDEF";
int i = 0; int i = 0;
do { do {
buf[i++] = digits[n % 16]; buf[i++] = digits[n % 16];

View file

@ -7,14 +7,14 @@
#include <Kernel/Arch/aarch64/UART.h> #include <Kernel/Arch/aarch64/UART.h>
#include <Kernel/Arch/aarch64/Utils.h> #include <Kernel/Arch/aarch64/Utils.h>
void Prekernel::dbgln(const char* text) void Prekernel::dbgln(char const* text)
{ {
auto& uart = Prekernel::UART::the(); auto& uart = Prekernel::UART::the();
uart.print_str(text); uart.print_str(text);
uart.print_str("\r\n"); uart.print_str("\r\n");
} }
void Prekernel::warnln(const char* text) void Prekernel::warnln(char const* text)
{ {
dbgln(text); dbgln(text);
} }

View file

@ -9,7 +9,7 @@
namespace Prekernel { namespace Prekernel {
// FIXME: to be replaced by real implementation from AK/Format.h // FIXME: to be replaced by real implementation from AK/Format.h
void dbgln(const char* text); void dbgln(char const* text);
void warnln(const char* text); void warnln(char const* text);
} }

View file

@ -19,9 +19,9 @@ void dummy();
void dummy() { } void dummy() { }
// Assertions.h // Assertions.h
[[noreturn]] void __assertion_failed(const char*, const char*, unsigned, const char*); [[noreturn]] void __assertion_failed(char const*, char const*, unsigned, char const*);
[[noreturn]] void __assertion_failed(const char*, const char*, unsigned, const char*) [[noreturn]] void __assertion_failed(char const*, char const*, unsigned, char const*)
{ {
for (;;) { } for (;;) { }
} }
@ -58,20 +58,20 @@ ssize_t safe_strnlen(char const*, unsigned long, void*&) { return 0; }
bool safe_memcpy(void*, void const*, unsigned long, void*&); bool safe_memcpy(void*, void const*, unsigned long, void*&);
bool safe_memcpy(void*, void const*, unsigned long, void*&) { return false; } bool safe_memcpy(void*, void const*, unsigned long, void*&) { return false; }
Optional<bool> safe_atomic_compare_exchange_relaxed(volatile u32*, u32&, u32); Optional<bool> safe_atomic_compare_exchange_relaxed(u32 volatile*, u32&, u32);
Optional<bool> safe_atomic_compare_exchange_relaxed(volatile u32*, u32&, u32) { return {}; } Optional<bool> safe_atomic_compare_exchange_relaxed(u32 volatile*, u32&, u32) { return {}; }
Optional<u32> safe_atomic_load_relaxed(volatile u32*); Optional<u32> safe_atomic_load_relaxed(u32 volatile*);
Optional<u32> safe_atomic_load_relaxed(volatile u32*) { return {}; } Optional<u32> safe_atomic_load_relaxed(u32 volatile*) { return {}; }
Optional<u32> safe_atomic_fetch_add_relaxed(volatile u32*, u32); Optional<u32> safe_atomic_fetch_add_relaxed(u32 volatile*, u32);
Optional<u32> safe_atomic_fetch_add_relaxed(volatile u32*, u32) { return {}; } Optional<u32> safe_atomic_fetch_add_relaxed(u32 volatile*, u32) { return {}; }
Optional<u32> safe_atomic_exchange_relaxed(volatile u32*, u32); Optional<u32> safe_atomic_exchange_relaxed(u32 volatile*, u32);
Optional<u32> safe_atomic_exchange_relaxed(volatile u32*, u32) { return {}; } Optional<u32> safe_atomic_exchange_relaxed(u32 volatile*, u32) { return {}; }
bool safe_atomic_store_relaxed(volatile u32*, u32); bool safe_atomic_store_relaxed(u32 volatile*, u32);
bool safe_atomic_store_relaxed(volatile u32*, u32) { return {}; } bool safe_atomic_store_relaxed(u32 volatile*, u32) { return {}; }
} }
@ -79,12 +79,12 @@ extern "C" {
FlatPtr kernel_mapping_base; FlatPtr kernel_mapping_base;
void kernelputstr(const char*, size_t); void kernelputstr(char const*, size_t);
void kernelputstr(const char*, size_t) { } void kernelputstr(char const*, size_t) { }
void kernelcriticalputstr(const char*, size_t); void kernelcriticalputstr(char const*, size_t);
void kernelcriticalputstr(const char*, size_t) { } void kernelcriticalputstr(char const*, size_t) { }
void kernelearlyputstr(const char*, size_t); void kernelearlyputstr(char const*, size_t);
void kernelearlyputstr(const char*, size_t) { } void kernelearlyputstr(char const*, size_t) { }
} }

View file

@ -164,7 +164,7 @@ extern "C" const u32 serenity_boot_logo_size;
static void draw_logo() static void draw_logo()
{ {
Prekernel::BootPPMParser logo_parser(reinterpret_cast<const u8*>(&serenity_boot_logo_start), serenity_boot_logo_size); Prekernel::BootPPMParser logo_parser(reinterpret_cast<u8 const*>(&serenity_boot_logo_start), serenity_boot_logo_size);
if (!logo_parser.parse()) { if (!logo_parser.parse()) {
Prekernel::warnln("Invalid boot logo."); Prekernel::warnln("Invalid boot logo.");
return; return;

View file

@ -33,8 +33,8 @@ inline u32 get_iopl_from_eflags(u32 eflags)
return (eflags & iopl_mask) >> 12; return (eflags & iopl_mask) >> 12;
} }
const DescriptorTablePointer& get_gdtr(); DescriptorTablePointer const& get_gdtr();
const DescriptorTablePointer& get_idtr(); DescriptorTablePointer const& get_idtr();
void handle_crash(RegisterState const&, char const* description, int signal, bool out_of_memory = false); void handle_crash(RegisterState const&, char const* description, int signal, bool out_of_memory = false);
@ -48,7 +48,7 @@ constexpr FlatPtr page_base_of(FlatPtr address)
return address & PAGE_MASK; return address & PAGE_MASK;
} }
inline FlatPtr page_base_of(const void* address) inline FlatPtr page_base_of(void const* address)
{ {
return page_base_of((FlatPtr)address); return page_base_of((FlatPtr)address);
} }
@ -58,7 +58,7 @@ constexpr FlatPtr offset_in_page(FlatPtr address)
return address & (~PAGE_MASK); return address & (~PAGE_MASK);
} }
inline FlatPtr offset_in_page(const void* address) inline FlatPtr offset_in_page(void const* address)
{ {
return offset_in_page((FlatPtr)address); return offset_in_page((FlatPtr)address);
} }

View file

@ -133,12 +133,12 @@ public:
bool is_null() const { return m_address == 0; } bool is_null() const { return m_address == 0; }
bool operator==(const IOAddress& other) const { return m_address == other.m_address; } bool operator==(IOAddress const& other) const { return m_address == other.m_address; }
bool operator!=(const IOAddress& other) const { return m_address != other.m_address; } bool operator!=(IOAddress const& other) const { return m_address != other.m_address; }
bool operator>(const IOAddress& other) const { return m_address > other.m_address; } bool operator>(IOAddress const& other) const { return m_address > other.m_address; }
bool operator>=(const IOAddress& other) const { return m_address >= other.m_address; } bool operator>=(IOAddress const& other) const { return m_address >= other.m_address; }
bool operator<(const IOAddress& other) const { return m_address < other.m_address; } bool operator<(IOAddress const& other) const { return m_address < other.m_address; }
bool operator<=(const IOAddress& other) const { return m_address <= other.m_address; } bool operator<=(IOAddress const& other) const { return m_address <= other.m_address; }
private: private:
u16 m_address { 0 }; u16 m_address { 0 };

View file

@ -29,7 +29,7 @@ public:
void clear() { m_raw = 0; } void clear() { m_raw = 0; }
u64 raw() const { return m_raw; } u64 raw() const { return m_raw; }
void copy_from(Badge<Memory::PageDirectory>, const PageDirectoryEntry& other) { m_raw = other.m_raw; } void copy_from(Badge<Memory::PageDirectory>, PageDirectoryEntry const& other) { m_raw = other.m_raw; }
enum Flags { enum Flags {
Present = 1 << 0, Present = 1 << 0,

Some files were not shown because too many files have changed in this diff Show more