diff --git a/src/parser3.h b/src/parser3.h index 91f7b70..053ed33 100644 --- a/src/parser3.h +++ b/src/parser3.h @@ -83,10 +83,7 @@ struct Parser3 { [[nodiscard]] WeaselJsonStatus parse(char *buf, int len); void flushNumber(bool done, char *buf) { - int len = 0; - if (dataBegin != nullptr && buf != nullptr) { - len = buf - dataBegin; - } + int len = (intptr_t)buf - (intptr_t)dataBegin; assert(len >= 0); if (done || len > 0) { callbacks->on_number_data(userdata, dataBegin ? dataBegin : "", len, @@ -95,13 +92,11 @@ struct Parser3 { } void flushString(bool done, char *buf) { - int len = 0; - if (dataBegin != nullptr) { - if (!(flags & WeaselJsonRaw)) { - len = writeBuf - dataBegin; - } else if (buf != nullptr) { - len = buf - dataBegin; - } + int len; + if (!(flags & WeaselJsonRaw)) { + len = (intptr_t)writeBuf - (intptr_t)dataBegin; + } else { + len = (intptr_t)buf - (intptr_t)dataBegin; } assert(len >= 0); if (done || len > 0) {