From b511a9179a4492ea926edd943a2624231ccea6c7 Mon Sep 17 00:00:00 2001 From: rlar Date: Mon, 8 Jan 2018 19:55:27 +0100 Subject: [PATCH] extend commit: spicelib/devcies/*dest.c, rewrite DEVdestroy() functions --- .../adms/admst/ngspiceMODULEdest.c.xml | 40 ++++++++----------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/src/spicelib/devices/adms/admst/ngspiceMODULEdest.c.xml b/src/spicelib/devices/adms/admst/ngspiceMODULEdest.c.xml index f1a4fe69c..50286f89d 100644 --- a/src/spicelib/devices/adms/admst/ngspiceMODULEdest.c.xml +++ b/src/spicelib/devices/adms/admst/ngspiceMODULEdest.c.xml @@ -40,35 +40,29 @@ - #include "ngspice/ngspice.h" #include "$(module)defs.h" #include "ngspice/suffix.h" -void $(module)destroy(GENmodel **inModel) - +void +$(module)destroy(GENmodel **inModel) { - register $(module)model **model = ($(module)model**)inModel; - register $(module)instance *here; - $(module)instance *prev = NULL; - $(module)model *mod = *model; - $(module)model *oldmod = NULL; - - for ( ; mod ; mod = $(module)nextModel(mod) ) { - if (oldmod) FREE(oldmod); - oldmod = mod; - prev = ($(module)instance *)NULL; - for (here = $(module)instances(mod); here ; here = here->$(module)nextInstance) { - if(prev) FREE(prev); - prev = here; - } - if(prev) FREE(prev); - } - if(oldmod) FREE(oldmod); - *model = NULL; - return; -} + $(module)model *mod = *($(module)model**) inModel; + while (mod) { + $(module)model *next_mod = $(module)nextModel(mod); + $(module)instance *inst = $(module)instances(mod); + while (inst) { + $(module)instance *next_inst = inst->$(module)nextInstance; + FREE(inst); + inst = next_inst; + } + FREE(mod); + mod = next_mod; + } + + *inModel = NULL; +}