[ox] Add file:line error tracing
This commit is contained in:
9
deps/ox/src/ox/ptrarith/nodebuffer.hpp
vendored
9
deps/ox/src/ox/ptrarith/nodebuffer.hpp
vendored
@@ -55,6 +55,10 @@ class __attribute__((packed)) NodeBuffer {
|
||||
return m_current;
|
||||
}
|
||||
|
||||
bool valid() {
|
||||
return m_current.valid();
|
||||
}
|
||||
|
||||
bool hasNext() {
|
||||
if (m_current.valid()) {
|
||||
oxTrace("ox::ptrarith::NodeBuffer::Iterator::hasNext::current") << m_current.offset();
|
||||
@@ -190,7 +194,6 @@ typename NodeBuffer<size_t, Item>::ItemPtr NodeBuffer<size_t, Item>::ptr(size_t
|
||||
// make sure this can be read as an Item, and then use Item::size for the size
|
||||
auto itemSpace = m_header.size - itemOffset;
|
||||
auto item = reinterpret_cast<Item*>(reinterpret_cast<uint8_t*>(this) + itemOffset);
|
||||
oxTrace("ox::ptrarith::NodeBuffer::ptr::itemOffset") << itemOffset << m_header.size - sizeof(Item);
|
||||
if (itemOffset >= sizeof(Header) &&
|
||||
itemOffset < m_header.size - sizeof(Item) &&
|
||||
itemSpace >= static_cast<size_t>(sizeof(Item)) &&
|
||||
@@ -271,10 +274,10 @@ template<typename size_t, typename Item>
|
||||
Error NodeBuffer<size_t, Item>::setSize(size_t size) {
|
||||
auto last = lastItem();
|
||||
if ((last.valid() && last.end() >= size) || size < sizeof(m_header)) {
|
||||
return 1;
|
||||
return OxError(1);
|
||||
} else {
|
||||
m_header.size = size;
|
||||
return 0;
|
||||
return OxError(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user