From bd152e093832fec2ef1ac28e65e648de343d9737 Mon Sep 17 00:00:00 2001
From: Dmitry Yurov <d.yurov@fz-juelich.de>
Date: Mon, 29 Jan 2018 14:34:15 +0100
Subject: [PATCH] Fixed memory leak in SpecularSimulation::getIntensityData

Redmine: #1860
---
 Core/Simulation/SpecularSimulation.cpp | 4 ++--
 Core/Simulation/SpecularSimulation.h   | 2 +-
 Wrap/swig/libBornAgainCore.i           | 3 +--
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/Core/Simulation/SpecularSimulation.cpp b/Core/Simulation/SpecularSimulation.cpp
index f2a41d1c272..3d82b6700e5 100644
--- a/Core/Simulation/SpecularSimulation.cpp
+++ b/Core/Simulation/SpecularSimulation.cpp
@@ -190,9 +190,9 @@ void SpecularSimulation::addParameterDistribution(const ParameterDistribution& p
     Simulation::addParameterDistribution(par_distr);
 }
 
-Histogram1D* SpecularSimulation::getIntensityData() const
+Histogram1D* SpecularSimulation::getIntensityData(AxesUnits units_type) const
 {
-    std::unique_ptr<OutputData<double>> result(getDetectorIntensity());
+    std::unique_ptr<OutputData<double>> result(getDetectorIntensity(units_type));
     return new Histogram1D(*result);
 }
 
diff --git a/Core/Simulation/SpecularSimulation.h b/Core/Simulation/SpecularSimulation.h
index c6bdf413dc5..aa617c799d7 100644
--- a/Core/Simulation/SpecularSimulation.h
+++ b/Core/Simulation/SpecularSimulation.h
@@ -66,7 +66,7 @@ public:
     void addParameterDistribution(const ParameterDistribution& par_distr) override;
 
     //! Returns detector signal (\f$ \propto |R|^2\f$) in the form of 1D Histogram
-    Histogram1D* getIntensityData() const;
+    Histogram1D* getIntensityData(AxesUnits units_type = AxesUnits::DEFAULT) const;
 
 private:
     typedef complex_t (ILayerRTCoefficients::*DataGetter)() const;
diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i
index e484d3081d9..6110d5946bd 100644
--- a/Wrap/swig/libBornAgainCore.i
+++ b/Wrap/swig/libBornAgainCore.i
@@ -232,8 +232,7 @@
 %newobject OffSpecSimulation::getDetectorIntensity(AxesUnits units_type = AxesUnits::DEFAULT) const;
 
 %newobject SpecularSimulation::getDetectorIntensity(AxesUnits units_type = AxesUnits::DEFAULT) const;
-%newobject SpecularSimulation::reflectivity() const;
-%newobject SpecularSimulation::transmissivity() const;
+%newobject SpecularSimulation::getIntensityData(AxesUnits units_type = AxesUnits::DEFAULT) const;
 
 %newobject IntensityDataIOFactory::readOutputData(const std::string& file_name);
 %newobject IntensityDataIOFactory::readIntensityData(const std::string& file_name);
-- 
GitLab