1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-24 11:31:31 +00:00

Free expression trees when they're no longer needed

git-svn-id: svn://svn.cc65.org/cc65/trunk@2594 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-10-31 20:56:40 +00:00
parent 929b9c174a
commit 64c5165a5b
2 changed files with 13 additions and 4 deletions

View File

@ -923,18 +923,24 @@ long ConstExpression (void)
* not constant.
*/
{
long Val;
/* Read the expression, and call finalize (exception here, since we
* expect a const).
*/
ExprNode* Expr = FinalizeExpr (Expression ());
/* Return the value */
/* Get the value */
if (IsConstExpr (Expr)) {
return GetExprVal (Expr);
Val = GetExprVal (Expr);
} else {
Error (ERR_CONSTEXPR_EXPECTED);
return 0;
Val = 0;
}
/* Free the expression tree and return the value */
FreeExpr (Expr);
return Val;
}
@ -1644,4 +1650,4 @@ void WriteExpr (ExprNode* Expr)

View File

@ -370,6 +370,9 @@ void SegCheck (void)
}
}
/* We don't need the expression tree any longer */
FreeExpr (F->V.Expr);
/* Convert the fragment into a literal fragment */
for (I = 0; I < F->Len; ++I) {
F->V.Data [I] = Val & 0xFF;