diff --git a/deps/ox/src/ox/std/error.hpp b/deps/ox/src/ox/std/error.hpp index 26184bff..13159b50 100644 --- a/deps/ox/src/ox/std/error.hpp +++ b/deps/ox/src/ox/std/error.hpp @@ -22,14 +22,21 @@ namespace ox { -class BaseError {}; +struct BaseError { + const char *file = ""; + uint16_t line = 0; + + BaseError() = default; + + constexpr BaseError(const BaseError &o) noexcept { + file = o.file; + line = o.line; + } + +}; using Error = Integer; -constexpr Error errCode(Error err) { - return (err >> 59) & onMask(5); -} - struct ErrorInfo { const char *file = nullptr; int line = -1; @@ -38,22 +45,17 @@ struct ErrorInfo { ErrorInfo() = default; ErrorInfo(Error err) { - this->file = reinterpret_cast(static_cast(err & onMask(48))); - this->line = static_cast((err >> 48) & onMask(11)); - this->errCode = ox::errCode(err); + this->file = err.file; + this->line = err.line; + this->errCode = err; } }; -static constexpr Error _errorTags(Error line, Error errCode) { - line &= onMask(11); - line <<= 48; - errCode &= onMask(5); - errCode <<= 59; - return errCode | line; -} - static constexpr Error _error(const char *file, uint32_t line, Error errCode) { - return Error(errCode ? reinterpret_cast(file) | _errorTags(Error(line), errCode) : 0); + Error err = errCode; + err.file = file; + err.line = line; + return err; } template diff --git a/deps/ox/src/ox/std/strongint.hpp b/deps/ox/src/ox/std/strongint.hpp index bd5704dd..9da34ec9 100644 --- a/deps/ox/src/ox/std/strongint.hpp +++ b/deps/ox/src/ox/std/strongint.hpp @@ -19,7 +19,7 @@ class BaseInteger {}; * integers. */ template -class Integer: Base { +class Integer: public Base { private: T m_i; @@ -110,7 +110,7 @@ constexpr Integer::Integer(T i) noexcept { } template -constexpr Integer::Integer(const Integer &i) noexcept:m_i(i.m_i) { +constexpr Integer::Integer(const Integer &i) noexcept: Base(i), m_i(i.m_i) { } template diff --git a/deps/ox/src/ox/std/trace.cpp b/deps/ox/src/ox/std/trace.cpp index 8934cc56..373328ff 100644 --- a/deps/ox/src/ox/std/trace.cpp +++ b/deps/ox/src/ox/std/trace.cpp @@ -15,6 +15,8 @@ #include "trace.hpp" +int counter = 0; + extern "C" void oxTraceHook([[maybe_unused]] const char *file, [[maybe_unused]] int line, [[maybe_unused]] const char *ch, [[maybe_unused]] const char *msg) {