From 694928f7426c5faeecc11defa0253381c88cf8d2 Mon Sep 17 00:00:00 2001 From: stefanjones Date: Fri, 22 Aug 2003 16:43:30 +0000 Subject: [PATCH] Another small memory leak --- ChangeLog | 1 + src/frontend/define.c | 14 ++++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 30dcdc362..dfc6ffbd0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ * src/frontend/define.c: don't alloc pn_func if we don't need to. + ditto with pn_op 2003-08-20 Stefan Jones diff --git a/src/frontend/define.c b/src/frontend/define.c index f8103d78d..b18648927 100644 --- a/src/frontend/define.c +++ b/src/frontend/define.c @@ -340,7 +340,7 @@ trcopy(struct pnode *tree, char *args, struct pnode *nn) pn = alloc(struct pnode); pn->pn_value = NULL; - /* pn_func are pointers to a global static struct */ + /* pn_func are pointers to a global constant struct */ pn->pn_func = tree->pn_func; pn->pn_op = NULL; pn->pn_left = trcopy(tree->pn_left, args, nn); @@ -348,20 +348,14 @@ trcopy(struct pnode *tree, char *args, struct pnode *nn) pn->pn_next = NULL; } else if (tree->pn_op) { - struct op *op; - - op = alloc(struct op); - op->op_num = tree->pn_op->op_num; - op->op_arity = tree->pn_op->op_arity; - op->op_func = tree->pn_op->op_func; - op->op_name = copy(tree->pn_op->op_name); pn = alloc(struct pnode); pn->pn_value = NULL; pn->pn_func = NULL; - pn->pn_op = op; + /* pn_op are pointers to a global constant struct */ + pn->pn_op = tree->pn_op; pn->pn_left = trcopy(tree->pn_left, args, nn); - if (op->op_arity == 2) + if (pn->pn_op->op_arity == 2) pn->pn_right = trcopy(tree->pn_right, args, nn); else pn->pn_right = NULL;