diff --git a/include/verilated.cpp b/include/verilated.cpp index 373082276..ab27d2af7 100644 --- a/include/verilated.cpp +++ b/include/verilated.cpp @@ -245,7 +245,8 @@ Verilated::NonSerialized::NonSerialized() { } Verilated::NonSerialized::~NonSerialized() { if (s_profThreadsFilenamep) { - free(const_cast(s_profThreadsFilenamep)); s_profThreadsFilenamep=NULL; + VL_DO_CLEAR(free(const_cast(s_profThreadsFilenamep)), + s_profThreadsFilenamep = NULL); } } @@ -2265,7 +2266,7 @@ VerilatedModule::VerilatedModule(const char* namep) VerilatedModule::~VerilatedModule() { // Memory cleanup - not called during normal operation // NOLINTNEXTLINE(google-readability-casting) - if (m_namep) { free((void*)(m_namep)); m_namep=NULL; } + if (m_namep) VL_DO_CLEAR(free((void*)(m_namep)), m_namep = NULL); } //====================================================================== @@ -2322,9 +2323,9 @@ VerilatedScope::VerilatedScope() { VerilatedScope::~VerilatedScope() { // Memory cleanup - not called during normal operation VerilatedImp::scopeErase(this); - if (m_namep) { delete [] m_namep; m_namep = NULL; } - if (m_callbacksp) { delete [] m_callbacksp; m_callbacksp = NULL; } - if (m_varsp) { delete m_varsp; m_varsp = NULL; } + if (m_namep) VL_DO_CLEAR(delete [] m_namep, m_namep = NULL); + if (m_callbacksp) VL_DO_CLEAR(delete [] m_callbacksp, m_callbacksp = NULL); + if (m_varsp) VL_DO_CLEAR(delete m_varsp, m_varsp = NULL); m_funcnumMax = 0; // Force callback table to empty } diff --git a/include/verilated_save.h b/include/verilated_save.h index 94497fbde..d9f3b79e1 100644 --- a/include/verilated_save.h +++ b/include/verilated_save.h @@ -54,7 +54,7 @@ public: } virtual ~VerilatedSerialize() { close(); - if (m_bufp) { delete m_bufp; m_bufp=NULL; } + if (m_bufp) VL_DO_CLEAR(delete m_bufp, m_bufp = NULL); } // METHODS bool isOpen() const { return m_isOpen; } @@ -107,6 +107,7 @@ protected: // CONSTRUCTORS VL_UNCOPYABLE(VerilatedDeserialize); + public: VerilatedDeserialize() { m_isOpen = false; @@ -116,7 +117,7 @@ public: } virtual ~VerilatedDeserialize() { close(); - if (m_bufp) { delete m_bufp; m_bufp=NULL; } + if (m_bufp) VL_DO_CLEAR(delete m_bufp, m_bufp = NULL); } // METHODS bool isOpen() const { return m_isOpen; } @@ -160,10 +161,12 @@ private: public: // CONSTRUCTORS - VerilatedSave() { m_fd = -1; } + VerilatedSave() + : m_fd(-1) {} virtual ~VerilatedSave() VL_OVERRIDE { close(); } // METHODS - void open(const char* filenamep) VL_MT_UNSAFE_ONE; ///< Open the file; call isOpen() to see if errors + /// Open the file; call isOpen() to see if errors + void open(const char* filenamep) VL_MT_UNSAFE_ONE; void open(const std::string& filename) VL_MT_UNSAFE_ONE { open(filename.c_str()); } virtual void close() VL_OVERRIDE VL_MT_UNSAFE_ONE; virtual void flush() VL_OVERRIDE VL_MT_UNSAFE_ONE; @@ -179,7 +182,8 @@ private: public: // CONSTRUCTORS - VerilatedRestore() { m_fd = -1; } + VerilatedRestore() + : m_fd(-1) {} virtual ~VerilatedRestore() VL_OVERRIDE { close(); } // METHODS diff --git a/include/verilated_vcd_c.cpp b/include/verilated_vcd_c.cpp index bf344ecc9..f14f1445d 100644 --- a/include/verilated_vcd_c.cpp +++ b/include/verilated_vcd_c.cpp @@ -265,17 +265,17 @@ void VerilatedVcd::makeNameMap() { } void VerilatedVcd::deleteNameMap() { - if (m_namemapp) { delete m_namemapp; m_namemapp=NULL; } + if (m_namemapp) VL_DO_CLEAR(delete m_namemapp, m_namemapp = NULL); } VerilatedVcd::~VerilatedVcd() { close(); - if (m_wrBufp) { delete[] m_wrBufp; m_wrBufp=NULL; } - if (m_sigs_oldvalp) { delete[] m_sigs_oldvalp; m_sigs_oldvalp=NULL; } + if (m_wrBufp) VL_DO_CLEAR(delete[] m_wrBufp, m_wrBufp = NULL); + if (m_sigs_oldvalp) VL_DO_CLEAR(delete[] m_sigs_oldvalp, m_sigs_oldvalp = NULL); deleteNameMap(); - if (m_filep && m_fileNewed) { delete m_filep; m_filep = NULL; } - for (CallbackVec::const_iterator it=m_callbacks.begin(); it!=m_callbacks.end(); ++it) { - delete (*it); + if (m_filep && m_fileNewed) VL_DO_CLEAR(delete m_filep, m_filep = NULL); + for (CallbackVec::const_iterator it = m_callbacks.begin(); it != m_callbacks.end(); ++it) { + delete *it; } m_callbacks.clear(); VerilatedVcdSingleton::removeVcd(this); @@ -347,12 +347,12 @@ void VerilatedVcd::bufferResize(vluint64_t minsize) { // writing when we are 3/4 full (with thus 2*minsize remaining free) if (VL_UNLIKELY(minsize > m_wrChunkSize)) { char* oldbufp = m_wrBufp; - m_wrChunkSize = minsize*2; - m_wrBufp = new char [m_wrChunkSize * 8]; + m_wrChunkSize = minsize * 2; + m_wrBufp = new char[m_wrChunkSize * 8]; memcpy(m_wrBufp, oldbufp, m_writep - oldbufp); m_writep = m_wrBufp + (m_writep - oldbufp); m_wrFlushp = m_wrBufp + m_wrChunkSize * 6; - delete [] oldbufp; oldbufp=NULL; + VL_DO_CLEAR(delete[] oldbufp, oldbufp = NULL); } } diff --git a/include/verilated_vpi.cpp b/include/verilated_vpi.cpp index 2a6f727df..3d5cd6651 100644 --- a/include/verilated_vpi.cpp +++ b/include/verilated_vpi.cpp @@ -204,7 +204,7 @@ public: m_varDatap = varp->datap(); } virtual ~VerilatedVpioVar() { - if (m_prevDatap) { delete [] m_prevDatap; m_prevDatap = NULL; } + if (m_prevDatap) VL_DO_CLEAR(delete[] m_prevDatap, m_prevDatap = NULL); } static inline VerilatedVpioVar* castp(vpiHandle h) { return dynamic_cast(reinterpret_cast(h)); diff --git a/src/VlcBucket.h b/src/VlcBucket.h index 31b922b27..24c23d1f1 100644 --- a/src/VlcBucket.h +++ b/src/VlcBucket.h @@ -61,7 +61,7 @@ public: } ~VlcBuckets() { m_dataSize = 0; - free(m_datap); m_datap = NULL; + VL_DO_CLEAR(free(m_datap), m_datap = NULL); } // ACCESSORS