mumble

A Lisp written in C, following the *Build Your Own Lisp* book
Log | Files | Refs | README

commit b961628a7766a4c1d1e182ded1d243217ecd7a01
parent df64451be25ad4a71c24b10e12c7688ae6cea6a2
Author: NunoSempere <nuno.sempere@protonmail.com>
Date:   Tue,  2 May 2023 20:59:09 -0400

feat: squash another leak?

Diffstat:
Mmumble | 0
Msrc/mumble.c | 15+++++++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/mumble b/mumble Binary files differ. diff --git a/src/mumble.c b/src/mumble.c @@ -196,17 +196,28 @@ void delete_lispval(lispval* v) case LISPVAL_QEXPR: if (VERBOSE) printfln("Freeing sexpr|qexpr"); - if (v == NULL || v->count != 0) - return; + // if (v == NULL || v->count != 0) + // return; + if (VERBOSE) + printfln("Freed sexpr|qexpr cells"); for (int i = 0; i < v->count; i++) { if (v->cell[i] != NULL) delete_lispval(v->cell[i]); v->cell[i] = NULL; } + if (VERBOSE) + printfln("Setting v->count to 0"); v->count = 0; + + if (VERBOSE) + printfln("Freeing v->cell"); if (v->cell != NULL) free(v->cell); v->cell = NULL; + + + if (VERBOSE) + printfln("Freeing the v pointer"); if (v != NULL) free(v); if (VERBOSE)