From fe151f15997c2130bf5f71c752a960de05a1bf6b Mon Sep 17 00:00:00 2001 From: Not Zed Date: Wed, 29 Nov 2000 10:29:56 +0000 Subject: Plug a memleak, need to free results from term_eval(). (term_eval_gt): 2000-11-29 Not Zed * e-sexp.c (term_eval_lt): Plug a memleak, need to free results from term_eval(). (term_eval_gt): (term_eval_eq): 2000-11-27 Not Zed * e-memory.c (e_mempool_new): Added some locking to global data. This should make the interfaces mt-safe, although each object is only per-thread safe. svn path=/trunk/; revision=6710 --- e-util/e-sexp.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'e-util/e-sexp.c') diff --git a/e-util/e-sexp.c b/e-util/e-sexp.c index 2757ea2043..08b9bb6a62 100644 --- a/e-util/e-sexp.c +++ b/e-util/e-sexp.c @@ -320,6 +320,8 @@ term_eval_lt(struct _ESExp *f, int argc, struct _ESExpTerm **argv, void *data) r->type = ESEXP_RES_BOOL; r->value.bool = strcmp(r1->value.string, r2->value.string) < 0; } + e_sexp_result_free(r1); + e_sexp_result_free(r2); } return r; } @@ -344,6 +346,8 @@ term_eval_gt(struct _ESExp *f, int argc, struct _ESExpTerm **argv, void *data) r->type = ESEXP_RES_BOOL; r->value.bool = strcmp(r1->value.string, r2->value.string) > 0; } + e_sexp_result_free(r1); + e_sexp_result_free(r2); } return r; } @@ -368,6 +372,8 @@ term_eval_eq(struct _ESExp *f, int argc, struct _ESExpTerm **argv, void *data) } else if (r1->type == ESEXP_RES_STRING) { r->value.bool = strcmp(r1->value.string, r2->value.string) == 0; } + e_sexp_result_free(r1); + e_sexp_result_free(r2); } return r; } -- cgit v1.2.3