From: Kevin Boyd Date: Sat, 15 Dec 2018 23:43:43 +0000 (-0500) Subject: Fix memory leaks in ns cleanup X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=9ccd7f2bd8bdfac424e9467309fd80fa22af654c;p=alexxy%2Fgromacs.git Fix memory leaks in ns cleanup Added some missing sfrees to cleanup function refs #2693 Change-Id: I1e1455794778139d3a3866e00c05f4ed97aea07c --- diff --git a/src/gromacs/mdlib/ns.cpp b/src/gromacs/mdlib/ns.cpp index 6ad71ef9f9..51fc6cfbcc 100644 --- a/src/gromacs/mdlib/ns.cpp +++ b/src/gromacs/mdlib/ns.cpp @@ -2194,6 +2194,10 @@ void init_ns(FILE *fplog, const t_commrec *cr, void done_ns(gmx_ns_t *ns, int numEnergyGroups) { + if (ns->bexcl != nullptr) + { + sfree(ns->bexcl); + } sfree(ns->bExcludeAlleg); if (ns->ns_buf) { @@ -2203,8 +2207,20 @@ void done_ns(gmx_ns_t *ns, int numEnergyGroups) } sfree(ns->ns_buf); } + if (ns->nl_sr != nullptr) + { + for (int i = 0; i < numEnergyGroups; i++) + { + if (ns->nl_sr[i] != nullptr) + { + sfree(ns->nl_sr[i]); + } + } + sfree(ns->nl_sr); + } sfree(ns->simple_aaj); sfree(ns->bHaveVdW); + sfree(ns->nsr); done_grid(ns->grid); sfree(ns); }