[ox] Correct bad bit_cast uses and improve constexpr-ness
This commit is contained in:
10
deps/ox/src/ox/mc/write.cpp
vendored
10
deps/ox/src/ox/mc/write.cpp
vendored
@@ -63,7 +63,7 @@ Error MetalClawWriter::field(const char*, uint64_t *val) noexcept {
|
||||
|
||||
Error MetalClawWriter::field(const char*, bool *val) noexcept {
|
||||
if (m_unionIdx == -1 || m_unionIdx == m_field) {
|
||||
oxReturnError(m_fieldPresence.set(m_field, *val));
|
||||
oxReturnError(m_fieldPresence.set(static_cast<std::size_t>(m_field), *val));
|
||||
}
|
||||
++m_field;
|
||||
return OxError(0);
|
||||
@@ -74,18 +74,18 @@ Error MetalClawWriter::field(const char*, SerStr val) noexcept {
|
||||
if (val.len() && (m_unionIdx == -1 || m_unionIdx == m_field)) {
|
||||
// write the length
|
||||
const auto strLen = mc::encodeInteger(val.len());
|
||||
if (m_buffIt + strLen.length + val.len() < m_buffLen) {
|
||||
if (m_buffIt + strLen.length + static_cast<std::size_t>(val.len()) < m_buffLen) {
|
||||
ox_memcpy(&m_buff[m_buffIt], strLen.data, strLen.length);
|
||||
m_buffIt += strLen.length;
|
||||
// write the string
|
||||
ox_memcpy(&m_buff[m_buffIt], val.c_str(), val.len());
|
||||
m_buffIt += val.len();
|
||||
ox_memcpy(&m_buff[m_buffIt], val.c_str(), static_cast<std::size_t>(val.len()));
|
||||
m_buffIt += static_cast<std::size_t>(val.len());
|
||||
fieldSet = true;
|
||||
} else {
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user