Fix some possible memory leaks and make some methods const.

This patch fixes a couple places where there were some memory
leaks on error and also makes some methods const that can be.
Found with cppcheck.
This commit is contained in:
Cary R 2010-08-10 08:52:55 -07:00 committed by Stephen Williams
parent d33082bca5
commit 860f8627ba
3 changed files with 9 additions and 6 deletions

View File

@ -23,12 +23,12 @@
# include "netlist.h"
# include <cassert>
bool NetAssign::is_asynchronous()
bool NetAssign::is_asynchronous() const
{
return true;
}
bool NetCondit::is_asynchronous()
bool NetCondit::is_asynchronous() const
{
return false;
}
@ -82,7 +82,7 @@ bool NetProc::is_asynchronous()
return false;
}
bool NetProcTop::is_asynchronous()
bool NetProcTop::is_asynchronous() const
{
if (type_ == IVL_PR_INITIAL)
return false;

View File

@ -1288,6 +1288,7 @@ static void line_directive()
if (cp == cpr) {
VLerror(yylloc, "Invalid #line directive (missing space after "
"file name).");
delete[] buf;
return;
}
cp = cpr;
@ -1296,6 +1297,7 @@ static void line_directive()
unsigned long lineno = strtoul(cp, &cpr, 10);
if (cp == cpr) {
VLerror(yylloc, "Invalid line number for #line directive.");
delete[] buf;
return;
}
cp = cpr;
@ -1305,6 +1307,7 @@ static void line_directive()
if ((size_t)(cpr-yytext) != strlen(yytext)) {
VLerror(yylloc, "Invalid #line directive (extra garbage after "
"line number).");
delete[] buf;
return;
}

View File

@ -2317,7 +2317,7 @@ class NetAssign : public NetAssignBase {
explicit NetAssign(NetAssign_*lv, NetExpr*rv);
~NetAssign();
bool is_asynchronous();
bool is_asynchronous() const;
virtual bool emit_proc(struct target_t*) const;
virtual int match_proc(struct proc_match_t*);
@ -2496,7 +2496,7 @@ class NetCondit : public NetProc {
virtual NexusSet* nex_input(bool rem_out = true);
virtual void nex_output(NexusSet&o);
bool is_asynchronous();
bool is_asynchronous() const;
bool synth_async(Design*des, NetScope*scope,
const NetBus&nex_map, NetBus&nex_out);
@ -3162,7 +3162,7 @@ class NetProcTop : public LineInfo, public Attrib {
const NetScope*scope() const;
/* Return true if this process represents combinational logic. */
bool is_asynchronous();
bool is_asynchronous() const;
/* Create asynchronous logic from this thread and return true,
or return false if that cannot be done. */