diff options
Diffstat (limited to 'e-util/e-sexp.c')
-rw-r--r-- | e-util/e-sexp.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/e-util/e-sexp.c b/e-util/e-sexp.c index 0f9abc636a..7d7b5f5f0f 100644 --- a/e-util/e-sexp.c +++ b/e-util/e-sexp.c @@ -903,6 +903,15 @@ static struct { }; static void +free_symbol(void *key, void *value, void *data) +{ + struct _ESExpSymbol *s = value; + + g_free(s->name); + g_free(s); +} + +static void e_sexp_finalise(GtkObject *o) { ESExp *s = (ESExp *)o; @@ -912,6 +921,9 @@ e_sexp_finalise(GtkObject *o) s->tree = NULL; } + g_scanner_scope_foreach_symbol(s->scanner, 0, free_symbol, 0); + g_scanner_destroy(s->scanner); + ((GtkObjectClass *)(parent_class))->finalize((GtkObject *)o); } |