From 35f3e5b7d50754b0d98195bf5b9ea9c8329a5ce9 Mon Sep 17 00:00:00 2001 From: Berk Hess Date: Wed, 7 Mar 2018 08:18:04 +0100 Subject: [PATCH] Fix memory leak in PME Now pme_spline_work is freed. Change-Id: Ia959a85929b794c94a2befcce455151be1b6eca1 --- src/gromacs/ewald/pme-spline-work.cpp | 8 ++++++++ src/gromacs/ewald/pme-spline-work.h | 4 +++- src/gromacs/ewald/pme.cpp | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gromacs/ewald/pme-spline-work.cpp b/src/gromacs/ewald/pme-spline-work.cpp index 37b8b07190..ef2da9253e 100644 --- a/src/gromacs/ewald/pme-spline-work.cpp +++ b/src/gromacs/ewald/pme-spline-work.cpp @@ -84,3 +84,11 @@ pme_spline_work *make_pme_spline_work(int gmx_unused order) return work; } + +void destroy_pme_spline_work(pme_spline_work *work) +{ + if (work != nullptr) + { + gmx::AlignedAllocationPolicy::free(work); + } +} diff --git a/src/gromacs/ewald/pme-spline-work.h b/src/gromacs/ewald/pme-spline-work.h index ded72e9b12..ae1297c5f6 100644 --- a/src/gromacs/ewald/pme-spline-work.h +++ b/src/gromacs/ewald/pme-spline-work.h @@ -1,7 +1,7 @@ /* * This file is part of the GROMACS molecular simulation package. * - * Copyright (c) 2014,2015, by the GROMACS development team, led by + * Copyright (c) 2014,2015,2018, by the GROMACS development team, led by * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl, * and including many others, as listed in the AUTHORS file in the * top-level source directory and at http://www.gromacs.org. @@ -53,4 +53,6 @@ struct pme_spline_work pme_spline_work *make_pme_spline_work(int order); +void destroy_pme_spline_work(pme_spline_work *work); + #endif diff --git a/src/gromacs/ewald/pme.cpp b/src/gromacs/ewald/pme.cpp index 0f64912941..6aea248031 100644 --- a/src/gromacs/ewald/pme.cpp +++ b/src/gromacs/ewald/pme.cpp @@ -1723,6 +1723,8 @@ void gmx_pme_destroy(gmx_pme_t *pme) sfree(pme->sum_qgrid_tmp); sfree(pme->sum_qgrid_dd_tmp); + destroy_pme_spline_work(pme->spline_work); + if (pme_gpu_active(pme) && pme->gpu) { pme_gpu_destroy(pme->gpu); -- 2.11.4.GIT