Fix memory leaks in ns cleanup
authorKevin Boyd <kevin.boyd@uconn.edu>
Sat, 15 Dec 2018 23:43:43 +0000 (18:43 -0500)
committerPaul Bauer <paul.bauer.q@gmail.com>
Mon, 17 Dec 2018 13:49:23 +0000 (14:49 +0100)
Added some missing sfrees to cleanup function

refs #2693

Change-Id: I1e1455794778139d3a3866e00c05f4ed97aea07c

src/gromacs/mdlib/ns.cpp

index 6ad71ef9f906d3bdf0742e5408739763358cda4f..51fc6cfbcc89fe03a0fe807a0f3981533970d1c1 100644 (file)
@@ -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);
 }