diff --git a/codeBlocks/jack2.cbp b/codeBlocks/jack2.cbp
index 8d49beb2..93a26bb6 100644
--- a/codeBlocks/jack2.cbp
+++ b/codeBlocks/jack2.cbp
@@ -477,10 +477,9 @@
-
-
-
+
+
diff --git a/codeBlocks/jack2.layout b/codeBlocks/jack2.layout
index ce7dad1b..cacfa18d 100644
--- a/codeBlocks/jack2.layout
+++ b/codeBlocks/jack2.layout
@@ -1,44 +1,39 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
@@ -46,24 +41,24 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -71,19 +66,44 @@
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -91,94 +111,124 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
@@ -186,59 +236,134 @@
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/linux/iio/JackIIODriver.C b/linux/iio/JackIIODriver.cpp
similarity index 97%
rename from linux/iio/JackIIODriver.C
rename to linux/iio/JackIIODriver.cpp
index 4f934801..127af7be 100644
--- a/linux/iio/JackIIODriver.C
+++ b/linux/iio/JackIIODriver.cpp
@@ -17,7 +17,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include "JackIIODriver.H"
+#include "JackIIODriver.h"
#include "driver_interface.h"
#include "JackEngineControl.h"
#include "JackGraphManager.h"
@@ -175,11 +175,13 @@ SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLocke
// interrogate the available iio devices searching for the chip name
if (iio_driver->iio.findDevicesByChipName(chipName)!=NO_ERROR) { // find all devices with a particular chip which are present.
jack_error("\nThe iio driver found no devices by the name %s\n", chipName.c_str());
+ delete iio_driver;
return NULL;
}
if (iio_driver->iio.getDeviceCnt()<1) { // If there are no devices found by that chip name, then indicate.
jack_error("\nThe iio driver found no devices by the name %s\n", chipName.c_str());
+ delete iio_driver;
return NULL;
}
@@ -194,6 +196,7 @@ SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLocke
int ret=iio_driver->iio.getReadArray(periodSize, iio_driver->data); // resize the array to be able to read enough memory
if (ret!=NO_ERROR) {
jack_error("iio::getReadArray couldn't create the data buffer, indicating the problem.");
+ delete iio_driver;
return NULL;
}
if (iio_driver->data.cols()>colCnt) // resize the data columns to match the specified number of columns (channels / channels per device)
@@ -201,6 +204,7 @@ SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLocke
ret=iio_driver->iio.open(periodCount, periodSize); // try to open all IIO devices
if (ret!=NO_ERROR)
+ delete iio_driver;
return NULL;
Jack::JackDriverClientInterface* threaded_driver = new Jack::JackThreadedDriver(iio_driver);
@@ -216,6 +220,11 @@ SERVER_EXPORT Jack::JackDriverClientInterface* driver_initialize(Jack::JackLocke
} else
jack_error("\nHave you run out of memory ? I tried to create Jack's standard threaded driver in memory but failed! The good news is that you had enough memory to create the IIO driver.\n");
+ if (!threaded_driver) { // handle the case that the threaded_driver was not created succ.
+ delete iio_driver;
+ iio_driver=NULL;
+ }
+
return threaded_driver;
}
diff --git a/linux/iio/JackIIODriver.H b/linux/iio/JackIIODriver.h
similarity index 100%
rename from linux/iio/JackIIODriver.H
rename to linux/iio/JackIIODriver.h
diff --git a/linux/wscript b/linux/wscript
index caf286a5..3e7f097d 100644
--- a/linux/wscript
+++ b/linux/wscript
@@ -19,7 +19,7 @@ def configure(conf):
conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_EIGEN3')
conf.check_cfg(package='sox', atleast_version='14.4.0', args='--cflags --libs', mandatory=False)
conf.env['BUILD_DRIVER_IIO'] += conf.is_defined('HAVE_SOX')
-
+
def create_jack_driver_obj(bld, target, sources, uselib = None):
driver = bld(features = ['c', 'cxx', 'cxxshlib', 'cshlib'])
@@ -82,7 +82,7 @@ def build(bld):
'firewire/JackFFADOMidiSendQueue.cpp'
]
- iio_driver_src = ['iio/JackIIODriver.C']
+ iio_driver_src = ['iio/JackIIODriver.cpp']
if bld.env['BUILD_DRIVER_ALSA'] == True:
create_jack_driver_obj(bld, 'alsa', alsa_driver_src, ["ALSA"])