From 72fd154571e5f46a8624f25f6a7f47c29284ff21 Mon Sep 17 00:00:00 2001 From: h_vogt Date: Sun, 21 May 2017 11:01:53 +0200 Subject: [PATCH] evtshared.c, add delete function, remove bug in creating struct --- src/xspice/evt/evtshared.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/xspice/evt/evtshared.c b/src/xspice/evt/evtshared.c index 46f660ebe..3963849da 100644 --- a/src/xspice/evt/evtshared.c +++ b/src/xspice/evt/evtshared.c @@ -64,6 +64,20 @@ typedef struct evt_shared_data { } evt_shared_data, *pevt_shared_data; */ +pevt_data return_node; +pevt_shared_data return_all; + +/* delete the information return structures */ +void +delete_ret(void) +{ + if (return_node) { + tfree(return_node->node_value); + tfree(return_node); + } + if (return_all) + tfree(return_all); +} pevt_shared_data EVTshareddata( @@ -91,8 +105,7 @@ EVTshareddata( char *value; - pevt_data return_node; - pevt_shared_data return_all; + delete_ret(); /* Get needed pointers */ ckt = g_mif_info.ckt; @@ -149,7 +162,7 @@ EVTshareddata( } /* Store the data */ - return_node = TMALLOC(evt_data, num_points); + return_node = TMALLOC(evt_data, num_points + 1); return_node[0].dcop = dcop; return_node[0].node_value = copy(value); return_node[0].step = step;