diff --git a/include/verilated_vcd_c.h b/include/verilated_vcd_c.h index 11846e432..eb0177a8a 100644 --- a/include/verilated_vcd_c.h +++ b/include/verilated_vcd_c.h @@ -134,17 +134,24 @@ private: // cppcheck-suppress functionConst void dumpDone(); inline void printCode(vluint32_t code) { - if (code>=(94*94*94)) *m_writep++ = static_cast((code/94/94/94)%94+33); - if (code>=(94*94)) *m_writep++ = static_cast((code/94/94)%94+33); - if (code>=(94)) *m_writep++ = static_cast((code/94)%94+33); - *m_writep++ = static_cast((code)%94+33); + *m_writep++ = static_cast('!' + code % 94); + code /= 94; + while (code) { + code--; + *m_writep++ = static_cast('!' + code % 94); + code /= 94; + } } static std::string stringCode(vluint32_t code) VL_PURE { std::string out; - if (code>=(94*94*94)) out += static_cast((code/94/94/94)%94+33); - if (code>=(94*94)) out += static_cast((code/94/94)%94+33); - if (code>=(94)) out += static_cast((code/94)%94+33); - return out + static_cast((code)%94+33); + out += static_cast('!' + code % 94); + code /= 94; + while (code) { + code--; + out += static_cast('!' + code % 94); + code /= 94; + } + return out; } // CONSTRUCTORS