From 1aa9d5cc906163cb15a8a7671c27ecba9aec9bca Mon Sep 17 00:00:00 2001
From: Robert Applin <40830825+robertapplin@users.noreply.github.com>
Date: Mon, 20 Aug 2018 11:25:26 +0100
Subject: [PATCH] Make review changes Refs #23155

---
 Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp  | 1 +
 .../CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp      | 5 +++--
 .../WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp  | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp b/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp
index baf17f78e25..ba8168f87f5 100644
--- a/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp
+++ b/Framework/CurveFitting/src/Algorithms/QENSFitSequential.cpp
@@ -285,6 +285,7 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm(
     const std::vector<std::string> &parameterNames) {
   auto pifp =
       AlgorithmManager::Instance().create("ProcessIndirectFitParameters");
+  pifp->setChild(true);
   pifp->setAlwaysStoreInADS(false);
   pifp->setProperty("InputWorkspace", parameterWorkspace);
   pifp->setProperty("ColumnX", "axis-1");
diff --git a/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp b/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp
index d3d640f72fb..b23ca868ef4 100644
--- a/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp
+++ b/Framework/CurveFitting/src/Algorithms/QENSFitSimultaneous.cpp
@@ -170,6 +170,7 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm(
     const std::vector<std::string> &parameterNames) {
   auto pifp =
       AlgorithmManager::Instance().create("ProcessIndirectFitParameters");
+  pifp->setChild(true);
   pifp->setAlwaysStoreInADS(false);
   pifp->setProperty("InputWorkspace", parameterWorkspace);
   pifp->setProperty("ColumnX", "axis-1");
@@ -179,12 +180,12 @@ IAlgorithm_sptr createProcessIndirectFitParametersAlgorithm(
 }
 
 ITableWorkspace_sptr transposeFitTable(ITableWorkspace_sptr table,
-                                       IFunction_sptr function,
+                                       const IFunction &function,
                                        const std::string &yAxisType) {
   auto transposed = WorkspaceFactory::Instance().createTable();
   transposed->addColumn(yAxisType, "axis-1");
 
-  auto parameters = function->getParameterNames();
+  auto parameters = function.getParameterNames();
   for (const auto &parameter : parameters) {
     transposed->addColumn("double", parameter);
     transposed->addColumn("double", parameter + "_Err");
diff --git a/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp b/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp
index 63b4466292b..e345e8bebf6 100644
--- a/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp
+++ b/Framework/WorkflowAlgorithms/src/ProcessIndirectFitParameters.cpp
@@ -92,9 +92,10 @@ std::vector<T> getColumnValues(Column const &column, std::size_t startRow,
 std::vector<double> getNumericColumnValuesOrIndices(Column const &column,
                                                     std::size_t startRow,
                                                     std::size_t endRow) {
+  auto const length = startRow >= endRow ? 1 + startRow - endRow : 0;
   if (column.isNumber())
     return getColumnValues<double>(column, startRow, endRow);
-  return getIncrementingSequence(0.0, endRow - startRow + 1);
+  return getIncrementingSequence(0.0, length);
 }
 
 std::string getColumnName(Column_const_sptr column) { return column->name(); }
-- 
GitLab