[arrayfire] 14/41: BUGFIX: Getting device pointer on empty arrays no longer segfaults.

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Mon Mar 21 14:56:22 UTC 2016


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch debian/experimental
in repository arrayfire.

commit c1c86b6192aab09da2f97a762d1a75ca8dc26a6f
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date:   Wed Mar 9 23:09:41 2016 -0500

    BUGFIX: Getting device pointer on empty arrays no longer segfaults.
    
    Added relevant test.
---
 src/backend/opencl/Array.hpp | 2 ++
 test/array.cpp               | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/src/backend/opencl/Array.hpp b/src/backend/opencl/Array.hpp
index 0b1f019..f87c772 100644
--- a/src/backend/opencl/Array.hpp
+++ b/src/backend/opencl/Array.hpp
@@ -78,6 +78,7 @@ namespace opencl
     void *getDevicePtr(const Array<T>& arr)
     {
         const cl::Buffer *buf = arr.device();
+        if (!buf) return NULL;
         memLock((T *)buf);
         cl_mem mem = (*buf)();
         return (void *)mem;
@@ -87,6 +88,7 @@ namespace opencl
     void *getRawPtr(const Array<T>& arr)
     {
         const cl::Buffer *buf = arr.get();
+        if (!buf) return NULL;
         cl_mem mem = (*buf)();
         return (void *)mem;
     }
diff --git a/test/array.cpp b/test/array.cpp
index 293b888..47e0c3a 100644
--- a/test/array.cpp
+++ b/test/array.cpp
@@ -7,6 +7,7 @@
  * http://arrayfire.com/licenses/BSD-3-Clause
  ********************************************************/
 
+#include <cstddef>
 #include <gtest/gtest.h>
 #include <arrayfire.h>
 #include <testHelpers.hpp>
@@ -485,3 +486,9 @@ TEST(DeviceId, Different)
     ASSERT_EQ(err, AF_ERR_DEVICE);
     setDevice(id0);
 }
+
+TEST(Device, empty)
+{
+    array a = array();
+    ASSERT_EQ(a.device<float>() == NULL, 1);
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git



More information about the debian-science-commits mailing list