change printing
[lambda.git] / mem.c
diff --git a/mem.c b/mem.c
index 4d73188..270679b 100644 (file)
--- a/mem.c
+++ b/mem.c
@@ -5,24 +5,20 @@
 void lambda_free(struct lambda *t)
 {
        if(t != NULL){
-               if(t->refcount == 1){
-                       switch(t->which){
-                       case lambda_ident:
-                               free(t->data.identifier.ident);
-                               break;
-                       case lambda_abs:
-                               free(t->data.abstraction.ident);
-                               lambda_free(t->data.abstraction.expr);
-                               break;
-                       case lambda_app:
-                               lambda_free(t->data.application.expr1);
-                               lambda_free(t->data.application.expr2);
-                               break;
-                       }
-                       free(t);
-               } else {
-                       t->refcount--;
+               switch(t->which){
+               case lambda_ident:
+                       free(t->data.identifier.ident);
+                       break;
+               case lambda_abs:
+                       free(t->data.abstraction.ident);
+                       lambda_free(t->data.abstraction.expr);
+                       break;
+               case lambda_app:
+                       lambda_free(t->data.application.expr1);
+                       lambda_free(t->data.application.expr2);
+                       break;
                }
+               free(t);
        }
 }