From 3962453739e6a68c453190a6359b6af8424881c7 Mon Sep 17 00:00:00 2001 From: rlar Date: Mon, 28 Dec 2015 20:28:28 +0100 Subject: [PATCH] dvec abstraction, #9/11, introduce `dvec_free()' --- src/frontend/dvec.c | 13 +++++++++++++ src/frontend/plotting/graphdb.c | 7 +------ src/frontend/vectors.c | 9 +-------- src/include/ngspice/dvec.h | 1 + 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/frontend/dvec.c b/src/frontend/dvec.c index d58807fa6..76e8e9462 100644 --- a/src/frontend/dvec.c +++ b/src/frontend/dvec.c @@ -38,3 +38,16 @@ dvec_alloc(char *name, int type, short flags, int length, void *storage) return rv; } + + +void +dvec_free(struct dvec *v) +{ + if (v->v_name) + tfree(v->v_name); + if (v->v_realdata) + tfree(v->v_realdata); + if (v->v_compdata) + tfree(v->v_compdata); + tfree(v); +} diff --git a/src/frontend/plotting/graphdb.c b/src/frontend/plotting/graphdb.c index eda576f9d..4dc741464 100644 --- a/src/frontend/plotting/graphdb.c +++ b/src/frontend/plotting/graphdb.c @@ -182,12 +182,7 @@ DestroyGraph(int id) d = list->graph.plotdata; while (d) { nextd = d->next; - tfree(d->vector->v_name); - if (isreal(d->vector)) - tfree(d->vector->v_realdata); - else - tfree(d->vector->v_compdata); - tfree(d->vector); + dvec_free(d->vector); tfree(d); d = nextd; } diff --git a/src/frontend/vectors.c b/src/frontend/vectors.c index da7143111..09d3b0b62 100644 --- a/src/frontend/vectors.c +++ b/src/frontend/vectors.c @@ -861,14 +861,7 @@ vec_free_x(struct dvec *v) } } - if (v->v_name) - tfree(v->v_name); - if (v->v_realdata) - tfree(v->v_realdata); - if (v->v_compdata) - tfree(v->v_compdata); - - tfree(v); + dvec_free(v); } diff --git a/src/include/ngspice/dvec.h b/src/include/ngspice/dvec.h index dfd80ab9c..a5ed619b8 100644 --- a/src/include/ngspice/dvec.h +++ b/src/include/ngspice/dvec.h @@ -69,5 +69,6 @@ struct dveclist { }; struct dvec *dvec_alloc(char *name, int type, short flags, int length, void *storage); +void dvec_free(struct dvec *); #endif