From 1db9a6b64848e114794c31b0c5bede911f99be7c Mon Sep 17 00:00:00 2001 From: Tom Deakin Date: Mon, 8 Feb 2021 11:33:03 +0000 Subject: [PATCH] [SYCL 2020] Use smart pointers instead of raw pointers --- SYCLStream.cpp | 24 ++++++++++-------------- SYCLStream.h | 13 +++++++------ 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/SYCLStream.cpp b/SYCLStream.cpp index 8a1010e..0f65560 100644 --- a/SYCLStream.cpp +++ b/SYCLStream.cpp @@ -51,24 +51,20 @@ SYCLStream::SYCLStream(const int ARRAY_SIZE, const int device_index) throw std::runtime_error("SYCL errors detected"); } }}); + + // No longer need list of devices + devices.clear(); + cached = true; // Create buffers - d_a = new sycl::buffer(array_size); - d_b = new sycl::buffer(array_size); - d_c = new sycl::buffer(array_size); - d_sum = new sycl::buffer(1); + // Only in the constructor at runtime do we know the size, so need to use (smart) pointers + d_a = std::make_unique>(array_size); + d_b = std::make_unique>(array_size); + d_c = std::make_unique>(array_size); + d_sum = std::make_unique>(1); + } -template -SYCLStream::~SYCLStream() -{ - delete d_a; - delete d_b; - delete d_c; - delete d_sum; - delete queue; - devices.clear(); -} template void SYCLStream::copy() diff --git a/SYCLStream.h b/SYCLStream.h index 3ebea6c..bfe9ae5 100644 --- a/SYCLStream.h +++ b/SYCLStream.h @@ -8,6 +8,7 @@ #pragma once #include +#include #include "Stream.h" @@ -23,16 +24,16 @@ class SYCLStream : public Stream int array_size; // SYCL objects - sycl::queue *queue; - sycl::buffer *d_a; - sycl::buffer *d_b; - sycl::buffer *d_c; - sycl::buffer *d_sum; + std::unique_ptr queue; + std::unique_ptr> d_a; + std::unique_ptr> d_b; + std::unique_ptr> d_c; + std::unique_ptr> d_sum; public: SYCLStream(const int, const int); - ~SYCLStream(); + ~SYCLStream() = default; virtual void copy() override; virtual void add() override;