[ox] Correct bad bit_cast uses and improve constexpr-ness

This commit is contained in:
2021-11-28 21:03:29 -06:00
parent 22f08f83c5
commit 1f24912ddd
35 changed files with 247 additions and 214 deletions

View File

@@ -107,7 +107,7 @@ Error MetalClawWriter::field(const char*, T *val) noexcept {
fieldSet = true;
}
}
oxReturnError(m_fieldPresence.set(m_field, fieldSet));
oxReturnError(m_fieldPresence.set(static_cast<std::size_t>(m_field), fieldSet));
m_field++;
return OxError(0);
}
@@ -124,7 +124,7 @@ Error MetalClawWriter::field(const char*, UnionView<U> val) noexcept {
fieldSet = true;
}
}
oxReturnError(m_fieldPresence.set(m_field, fieldSet));
oxReturnError(m_fieldPresence.set(static_cast<std::size_t>(m_field), fieldSet));
m_field++;
return OxError(0);
}
@@ -155,7 +155,7 @@ Error MetalClawWriter::field(const char*, T *val, std::size_t len) noexcept {
fieldSet = true;
}
oxReturnError(m_fieldPresence.set(m_field, fieldSet));
oxReturnError(m_fieldPresence.set(static_cast<std::size_t>(m_field), fieldSet));
m_field++;
return OxError(0);
}
@@ -194,7 +194,7 @@ Error MetalClawWriter::field(const char*, HashMap<String, T> *val) noexcept {
fieldSet = true;
}
oxReturnError(m_fieldPresence.set(m_field, fieldSet));
oxReturnError(m_fieldPresence.set(static_cast<std::size_t>(m_field), fieldSet));
m_field++;
return OxError(0);
}
@@ -212,7 +212,7 @@ Error MetalClawWriter::appendInteger(I val) noexcept {
return OxError(MC_BUFFENDED);
}
}
oxReturnError(m_fieldPresence.set(m_field, fieldSet));
oxReturnError(m_fieldPresence.set(static_cast<std::size_t>(m_field), fieldSet));
m_field++;
return OxError(0);
}
@@ -221,14 +221,14 @@ template<typename T>
void MetalClawWriter::setTypeInfo(const char*, int fields) noexcept {
m_fields = fields;
m_fieldPresence.setFields(fields);
m_buffIt = m_fieldPresence.getMaxLen();
m_buffIt = static_cast<std::size_t>(m_fieldPresence.getMaxLen());
ox_memset(m_buff, 0, m_buffIt);
}
template<typename T>
Result<Buffer> writeMC(T *val) noexcept {
Buffer buff(10 * units::MB);
MetalClawWriter writer(bit_cast<uint8_t*>(buff.data()), buff.size());
MetalClawWriter writer(reinterpret_cast<uint8_t*>(buff.data()), buff.size());
oxReturnError(model(&writer, val));
buff.resize(writer.size());
return move(buff);
@@ -236,7 +236,7 @@ Result<Buffer> writeMC(T *val) noexcept {
template<typename T>
Error writeMC(char *buff, std::size_t buffLen, T *val, std::size_t *sizeOut = nullptr) noexcept {
MetalClawWriter writer(bit_cast<uint8_t*>(buff), buffLen);
MetalClawWriter writer(reinterpret_cast<uint8_t*>(buff), buffLen);
auto err = model(&writer, val);
if (sizeOut) {
*sizeOut = writer.size();