[arrayfire] 45/75: BUGFIX: Fixing array.write for all backends

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Mon Feb 29 08:01:15 UTC 2016


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

ghisvail-guest pushed a commit to branch dfsg-clean
in repository arrayfire.

commit c66da4028452e5adcba2d7e6c3adff37e95b8b33
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date:   Mon Feb 22 12:45:10 2016 -0500

    BUGFIX: Fixing array.write for all backends
---
 src/backend/cpu/Array.cpp    | 5 +++--
 src/backend/cuda/Array.cpp   | 4 ++--
 src/backend/opencl/Array.cpp | 4 ++--
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/backend/cpu/Array.cpp b/src/backend/cpu/Array.cpp
index 3edca87..2c296d0 100644
--- a/src/backend/cpu/Array.cpp
+++ b/src/backend/cpu/Array.cpp
@@ -228,8 +228,9 @@ void
 writeHostDataArray(Array<T> &arr, const T * const data, const size_t bytes)
 {
     if(!arr.isOwner()) {
-        arr = createEmptyArray<T>(arr.dims());
+        arr = copyArray<T>(arr);
     }
+    arr.eval();
     memcpy(arr.get(), data, bytes);
 }
 
@@ -238,7 +239,7 @@ void
 writeDeviceDataArray(Array<T> &arr, const void * const data, const size_t bytes)
 {
     if(!arr.isOwner()) {
-        arr = createEmptyArray<T>(arr.dims());
+        arr = copyArray<T>(arr);
     }
     memcpy(arr.get(), (const T * const)data, bytes);
 }
diff --git a/src/backend/cuda/Array.cpp b/src/backend/cuda/Array.cpp
index c1cf810..7865741 100644
--- a/src/backend/cuda/Array.cpp
+++ b/src/backend/cuda/Array.cpp
@@ -256,7 +256,7 @@ namespace cuda
     writeHostDataArray(Array<T> &arr, const T * const data, const size_t bytes)
     {
         if (!arr.isOwner()) {
-            arr = createEmptyArray<T>(arr.dims());
+            arr = copyArray<T>(arr);
         }
 
         T *ptr = arr.get();
@@ -273,7 +273,7 @@ namespace cuda
     writeDeviceDataArray(Array<T> &arr, const void * const data, const size_t bytes)
     {
         if (!arr.isOwner()) {
-            arr = createEmptyArray<T>(arr.dims());
+            arr = copyArray<T>(arr);
         }
 
         T *ptr = arr.get();
diff --git a/src/backend/opencl/Array.cpp b/src/backend/opencl/Array.cpp
index bd576ca..002c1d5 100644
--- a/src/backend/opencl/Array.cpp
+++ b/src/backend/opencl/Array.cpp
@@ -286,7 +286,7 @@ namespace opencl
     writeHostDataArray(Array<T> &arr, const T * const data, const size_t bytes)
     {
         if (!arr.isOwner()) {
-            arr = createEmptyArray<T>(arr.dims());
+            arr = copyArray<T>(arr);
         }
 
         getQueue().enqueueWriteBuffer(*arr.get(), CL_TRUE,
@@ -302,7 +302,7 @@ namespace opencl
     writeDeviceDataArray(Array<T> &arr, const void * const data, const size_t bytes)
     {
         if (!arr.isOwner()) {
-            arr = createEmptyArray<T>(arr.dims());
+            arr = copyArray<T>(arr);
         }
 
         cl::Buffer& buf = *arr.get();

-- 
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