aboutsummaryrefslogtreecommitdiffstats
path: root/libnormalform_free.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libnormalform_free.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/libnormalform_free.c b/libnormalform_free.c
index 3bce4df..26353c8 100644
--- a/libnormalform_free.c
+++ b/libnormalform_free.c
@@ -56,12 +56,11 @@ destroy_term(struct libnormalform_term *this)
while (this->term.clause.nterms)
destroy_term(&this->term.clause.terms[--this->term.clause.nterms]);
free(this->term.clause.terms);
- free(this);
break;
case LIBNORMALFORM_TRANSFORMATION:
+ destroy_term(this->term.transformation.sentence);
free(this->term.transformation.sentence);
- free(this);
return;
case LIBNORMALFORM_FOR_ALL:
@@ -74,13 +73,12 @@ destroy_term(struct libnormalform_term *this)
destroy_term(this->term.qualification.predicate);
free(this->term.qualification.antecedent);
free(this->term.qualification.predicate);
- /* fall through */
+ break;
case LIBNORMALFORM_VARIABLE:
case LIBNORMALFORM_NEGATED_VARIABLE:
case LIBNORMALFORM_FUNCTION:
case LIBNORMALFORM_NEGATED_FUNCTION:
- free(this);
break;
default: