Fix memory leak at end of do_md
authorKevin Boyd <kevin.boyd@uconn.edu>
Sun, 16 Dec 2018 00:25:19 +0000 (19:25 -0500)
committerKevin Boyd <kevin.boyd@uconn.edu>
Mon, 17 Dec 2018 13:34:35 +0000 (14:34 +0100)
Without domain decomposition, the atomtypes field of localtop is
dynamically allocated and needs freeing after mdrun

Refs #2693

Change-Id: I45d18c503a87832332868e7fb9b63720548f243c

src/gromacs/mdrun/md.cpp

index 021ca12b6809aeabc09621f15049a465b4386a5e..68d166d24b1990d456cac22da98420692cbb05c1 100644 (file)
@@ -1536,6 +1536,13 @@ void gmx::Integrator::do_md()
     walltime_accounting_set_nsteps_done(walltime_accounting, step_rel);
 
     destroy_enerdata(enerd);
+
     sfree(enerd);
+
+    /* Clean up topology. top->atomtypes has an allocated pointer if no domain decomposition*/
+    if (!DOMAINDECOMP(cr))
+    {
+        done_atomtypes(&top->atomtypes);
+    }
     sfree(top);
 }