diff --git a/src/musrFT.cpp b/src/musrFT.cpp index d15345c6..d5483281 100644 --- a/src/musrFT.cpp +++ b/src/musrFT.cpp @@ -1403,6 +1403,10 @@ Int_t main(Int_t argc, Char_t *argv[]) fourier.resize(histo.size()); for (UInt_t i=0; i> musrFT: **ERROR** couldn't invoke PFourier object" << std::endl; + return PMUSR_MSR_ALLOCATION_ERROR; + } } // Fourier transform data @@ -1426,7 +1430,7 @@ Int_t main(Int_t argc, Char_t *argv[]) startupParam.fourierRange[1] = fourier[0]->GetMaxFreq(); } - PFourierCanvas *fourierCanvas = nullptr; + std::unique_ptr fourierCanvas; // if Fourier dumped if whished do it now if (startupParam.dumpFln.Length() > 0) { @@ -1446,19 +1450,23 @@ Int_t main(Int_t argc, Char_t *argv[]) TApplication app("App", &argc, argv); if (startupHandler) { - fourierCanvas = new PFourierCanvas(fourier, dataSetTag, startupParam.title.Data(), + fourierCanvas = std::unique_ptr(new PFourierCanvas(fourier, dataSetTag, startupParam.title.Data(), startupParam.showAverage, startupParam.showAveragePerDataSet, fourierPlotTag, startupParam.fourierRange, startupParam.initialPhase, 10, 10, 800, 800, startupHandler->GetMarkerList(), startupHandler->GetColorList(), - batch); + batch)); } else { - fourierCanvas = new PFourierCanvas(fourier, dataSetTag, startupParam.title.Data(), + fourierCanvas = std::unique_ptr(new PFourierCanvas(fourier, dataSetTag, startupParam.title.Data(), startupParam.showAverage, startupParam.showAveragePerDataSet, fourierPlotTag, startupParam.fourierRange, startupParam.initialPhase, 10, 10, 800, 800, - batch); + batch)); + } + if (fourierCanvas == nullptr) { + std::cerr << ">> musrFT: **ERROR** couldn't invoke PFourierCanvas object." << std::endl; + return PMUSR_MSR_ALLOCATION_ERROR; } fourierCanvas->UpdateFourierPad(); @@ -1471,7 +1479,7 @@ Int_t main(Int_t argc, Char_t *argv[]) ok = false; } else { // connect signal/slot - TQObject::Connect("TCanvas", "Closed()", "PFourierCanvas", fourierCanvas, "LastCanvasClosed()"); + TQObject::Connect("TCanvas", "Closed()", "PFourierCanvas", fourierCanvas.get(), "LastCanvasClosed()"); fourierCanvas->SetTimeout(startupParam.timeout); diff --git a/src/musrt0.cpp b/src/musrt0.cpp index 5e1431c4..5aa98847 100644 --- a/src/musrt0.cpp +++ b/src/musrt0.cpp @@ -36,6 +36,7 @@ #include #include +#include #include #include