]> git.sur5r.net Git - cc65/commitdiff
Changed freeing symbol relations, cosmetic changes
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 4 Nov 2003 19:02:11 +0000 (19:02 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 4 Nov 2003 19:02:11 +0000 (19:02 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2610 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/expr.c
src/ca65/fragment.h

index b5beb8e780c2203384c0a810e842274519ba2e74..dd0513dd2d31ce2fbf54c7e76f9c5bfc35d3c40b 100644 (file)
@@ -111,6 +111,11 @@ static void FreeExprNode (ExprNode* E)
 /* Free a node */
 {
     if (E) {
+        if (E->Op == EXPR_SYMBOL) {
+            /* Remove the symbol reference */
+            SymDelRef (E->V.Sym, E);
+        }
+        /* Place the symbol into the free nodes list if possible */
        if (FreeNodeCount < MAX_FREE_NODES) {
            /* Remember this node for later */
            E->Left = FreeExprNodes;
@@ -951,10 +956,6 @@ void FreeExpr (ExprNode* Root)
     if (Root) {
        FreeExpr (Root->Left);
        FreeExpr (Root->Right);
-        if (Root->Op == EXPR_SYMBOL) {
-            /* Remove the symbol reference */
-            SymDelRef (Root->V.Sym, Root);
-        }
        FreeExprNode (Root);
     }
 }
@@ -1508,7 +1509,7 @@ static ExprNode* ConstExtract (ExprNode* Expr, long* Val, int Sign)
                /* SEG - SEG, remove it completely */
                FreeExprNode (Left);
                FreeExprNode (Right);
-               FreeExprNode (Expr);
+               FreeExprNode (Expr);
                return 0;
            } else {
                Expr->Left  = Left;
index a020813af7ebe75787c7ec64813d7a4de510d790..863b4740c1966d76f9ee37aaa2f4f57c368bff3b 100644 (file)
@@ -59,7 +59,7 @@ struct Fragment {
     unsigned short     Len;            /* Length for this fragment */
     unsigned char      Type;           /* Fragment type */
     union {
-               unsigned char   Data [4];       /* Literal values */
+               unsigned char   Data[4];        /* Literal values */
                ExprNode*       Expr;           /* Expression */
     } V;
 };