[ox] Fix compiler warnings

This commit is contained in:
Gary Talent 2022-05-21 16:17:32 -05:00
parent 062fa07f4d
commit f2ddd15d63
8 changed files with 31 additions and 11 deletions

View File

@ -145,7 +145,7 @@ class Signal {
void emit(Args... args) const; void emit(Args... args) const;
Error emitCheckError(Args... args) noexcept; Error emitCheckError(Args... args) const noexcept;
}; };
extern template class Signal<const SignalHandler*>; extern template class Signal<const SignalHandler*>;
@ -208,7 +208,7 @@ void Signal<Args...>::emit(Args... args) const {
} }
template<class... Args> template<class... Args>
Error Signal<Args...>::emitCheckError(Args... args) noexcept { Error Signal<Args...>::emitCheckError(Args... args) const noexcept {
try { try {
for (auto &f : m_slots) { for (auto &f : m_slots) {
f->call(args...); f->call(args...);
@ -321,7 +321,7 @@ class Signal<Error(Args...)> {
void emit(Args... args) const noexcept; void emit(Args... args) const noexcept;
Error emitCheckError(Args... args) noexcept; Error emitCheckError(Args... args) const noexcept;
}; };
extern template class Signal<Error(const SignalHandler*)>; extern template class Signal<Error(const SignalHandler*)>;
@ -396,7 +396,7 @@ void Signal<Error(Args...)>::emit(Args... args) const noexcept {
} }
template<class... Args> template<class... Args>
Error Signal<Error(Args...)>::emitCheckError(Args... args) noexcept { Error Signal<Error(Args...)>::emitCheckError(Args... args) const noexcept {
for (auto &f : m_slots) { for (auto &f : m_slots) {
oxReturnError(f->call(args...)); oxReturnError(f->call(args...));
} }

View File

@ -144,7 +144,7 @@ Error MetalClawReader::field(const char *name, T *val) noexcept {
++m_field; ++m_field;
return OxError(0); return OxError(0);
} else { } else {
if ((m_unionIdx == -1 || m_unionIdx == m_field) && val && m_fieldPresence.get(m_field)) { if ((m_unionIdx == -1 || m_unionIdx == m_field) && val && m_fieldPresence.get(static_cast<std::size_t>(m_field))) {
auto reader = child(""); auto reader = child("");
oxReturnError(model(&reader, val)); oxReturnError(model(&reader, val));
} }

View File

@ -55,7 +55,7 @@ class Array {
} }
} }
constexpr typename std::iterator<std::bidirectional_iterator_tag, T>::difference_type constexpr typename Iterator<std::bidirectional_iterator_tag, T>::difference_type
operator-(const iterator &other) const noexcept { operator-(const iterator &other) const noexcept {
if constexpr(reverse) { if constexpr(reverse) {
return m_offset + other.m_offset; return m_offset + other.m_offset;

View File

@ -132,7 +132,7 @@ struct [[nodiscard]] Result {
} }
template<typename U> template<typename U>
constexpr Result(const Result<U> &other) noexcept: value(other.value), error(error) { constexpr Result(const Result<U> &other) noexcept: value(other.value), error(other.error) {
} }
constexpr Result(const Error &error) noexcept: error(error) { constexpr Result(const Error &error) noexcept: error(error) {

View File

@ -191,7 +191,6 @@ constexpr Result<T> join(auto d, const auto &list) {
} }
T out; T out;
out += list.front().value; out += list.front().value;
const auto dLen = ox_strlen(d);
for (auto i = 1ul; i < list.size(); ++i) { for (auto i = 1ul; i < list.size(); ++i) {
out += d; out += d;
out += list[i]; out += list[i];

View File

@ -223,8 +223,8 @@ void HashMap<K, T>::expand() {
template<typename K, typename T> template<typename K, typename T>
uint64_t HashMap<K, T>::hash(K k, int len) noexcept { uint64_t HashMap<K, T>::hash(K k, int len) noexcept {
uint64_t sum = 1; uint64_t sum = 1;
for (int i = 0; i < len && k[i]; ++i) { for (auto i = 0u; i < static_cast<uint64_t>(len) && k[i]; ++i) {
sum += ((sum + k[i]) * 7) * sum; sum += ((sum + static_cast<uint64_t>(k[i])) * 7) * sum;
} }
return sum; return sum;
} }

View File

@ -56,7 +56,7 @@ template<typename T1, typename T2>
[[nodiscard]] [[nodiscard]]
constexpr int ox_strcmp(T1 str1, T2 str2) noexcept { constexpr int ox_strcmp(T1 str1, T2 str2) noexcept {
auto retval = 0; auto retval = 0;
auto i = 0; auto i = 0u;
while (str1[i] || str2[i]) { while (str1[i] || str2[i]) {
if (str1[i] < str2[i]) { if (str1[i] < str2[i]) {
retval = -1; retval = -1;

View File

@ -337,6 +337,8 @@ class Vector: detail::VectorAllocator<T, SmallVectorSize> {
[[nodiscard]] [[nodiscard]]
constexpr bool contains(const T&) const; constexpr bool contains(const T&) const;
constexpr void insert(std::size_t pos, std::size_t cnt, const T &val);
constexpr void insert(std::size_t pos, const T &val); constexpr void insert(std::size_t pos, const T &val);
template<typename... Args> template<typename... Args>
@ -564,6 +566,25 @@ constexpr bool Vector<T, SmallVectorSize>::contains(const T &v) const {
return false; return false;
} }
template<typename T, std::size_t SmallVectorSize>
constexpr void Vector<T, SmallVectorSize>::insert(std::size_t pos, std::size_t cnt, const T &val) {
// TODO: insert should ideally have its own expandCap
if (m_size + cnt > m_cap) {
expandCap(m_cap ? m_size + cnt : initialSize);
}
if (pos < m_size) {
for (auto i = m_size + cnt - 1; i > pos; --i) {
std::construct_at(&m_items[i], std::move(m_items[i - cnt]));
}
m_items[pos] = val;
} else {
for (auto i = 0u; i < cnt; ++i) {
std::construct_at(&m_items[pos + i], val);
}
}
++m_size;
}
template<typename T, std::size_t SmallVectorSize> template<typename T, std::size_t SmallVectorSize>
constexpr void Vector<T, SmallVectorSize>::insert(std::size_t pos, const T &val) { constexpr void Vector<T, SmallVectorSize>::insert(std::size_t pos, const T &val) {
// TODO: insert should ideally have its own expandCap // TODO: insert should ideally have its own expandCap