From b300ef505c527bbdf25671358fe7091cab008474 Mon Sep 17 00:00:00 2001
From: jsiegle <jsiegle@mit.edu>
Date: Sun, 19 Jan 2014 16:00:17 -0500
Subject: [PATCH] Prevent channel overflow by setting firstChan to 0

---
 Source/Processors/SpikeDetector.cpp | 4 ++--
 Source/UI/EditorViewport.cpp        | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Source/Processors/SpikeDetector.cpp b/Source/Processors/SpikeDetector.cpp
index 9bf66fe38..4b4908bea 100755
--- a/Source/Processors/SpikeDetector.cpp
+++ b/Source/Processors/SpikeDetector.cpp
@@ -105,7 +105,7 @@ bool SpikeDetector::addElectrode(int nChans)
 
     int firstChan;
 
-    if (electrodes.size() == 0 || !paramsWereLoaded)
+    if (electrodes.size() == 0)
     {
         firstChan = 0;
     }
@@ -117,7 +117,7 @@ bool SpikeDetector::addElectrode(int nChans)
 
     if (firstChan + nChans > getNumInputs())
     {
-        return false;
+        firstChan = 0; // make sure we don't overflow available channels
     }
 
     int currentVal = electrodeCounter[nChans];
diff --git a/Source/UI/EditorViewport.cpp b/Source/UI/EditorViewport.cpp
index ea774886f..e57299817 100755
--- a/Source/UI/EditorViewport.cpp
+++ b/Source/UI/EditorViewport.cpp
@@ -1338,7 +1338,7 @@ const String EditorViewport::loadState(File fileToLoad)
     // {
     //     return "No configuration selected.";
     // }
-	int maxID=100;
+	int maxID = 100;
     currentFile = fileToLoad;
 
     std::cout << "Loading processor graph." << std::endl;
@@ -1518,7 +1518,7 @@ const String EditorViewport::loadState(File fileToLoad)
 void EditorViewport::setParametersByXML(GenericProcessor* targetProcessor, XmlElement* processorXML)
 {
     // Should probably do some error checking to make sure XML is valid, depending on how it treats errors (will likely just not update parameters, but error message could be nice.)
-    int numberParameters=targetProcessor->getNumParameters();
+    int numberParameters = targetProcessor->getNumParameters();
     // Ditto channels. Not sure how to handle different channel sizes when variable sources (file reader etc. change). Maybe I should check number of channels vs source, but that requires hardcoding when source matters.
     //int numChannels=(targetProcessor->channels).size();
     //int numEventChannels=(targetProcessor->eventChannels).size();
@@ -1546,7 +1546,7 @@ void EditorViewport::setParametersByXML(GenericProcessor* targetProcessor, XmlEl
 
             for (int j = 0; j < numberParameters; ++j)
             {
-                parameterNameForXML=targetProcessor->getParameterName(j);
+                parameterNameForXML = targetProcessor->getParameterName(j);
 
                 if (parameterXML->getStringAttribute("name")==parameterNameForXML)
                 {
-- 
GitLab