@@ -63,21 +63,19 @@ class buffer_storage_test {
63
63
64
64
// Case 3 - Weak pointer
65
65
std::shared_ptr<T[]> data_shared_ptr (new T[size]);
66
- std::weak_ptr<T[]> data_final3 = data_shared_ptr;
66
+ std::shared_ptr<T> data_shared_ptr_alias (data_shared_ptr,
67
+ data_shared_ptr.get ());
68
+ std::weak_ptr<T> data_final3 = data_shared_ptr_alias;
67
69
68
- // Case 4 - Shared pointer
69
- std::shared_ptr<T[]> data_final4 (new T[size]);
70
-
71
- // Case 5 - Vector data
70
+ // Case 4 - Vector iterator
72
71
std::vector<T> data_vector;
73
72
data_vector.resize (size);
74
- auto data_final5 = data_vector.begin ();
73
+ auto data_final4 = data_vector.begin ();
75
74
76
75
check_write_back (log, r, data_final1.get ());
77
76
check_write_back (log, r, data_final2, true /* is_nullptr*/ );
78
77
check_write_back (log, r, data_final3);
79
78
check_write_back (log, r, data_final4);
80
- check_write_back (log, r, data_final5);
81
79
}
82
80
83
81
private:
@@ -99,12 +97,11 @@ class buffer_storage_test {
99
97
}
100
98
}
101
99
102
- template <template <typename T1> class C >
103
- void check_write_back (util::logger &log, sycl::range<dims> r,
104
- C<T[]> final_data) {
100
+ void check_write_back (util::logger& log, sycl::range<dims> r,
101
+ std::weak_ptr<T> final_data) {
105
102
use_buffer (final_data, r);
106
103
107
- std::shared_ptr<T[]> ptr_shrd ( final_data);
104
+ auto ptr_shrd = final_data. lock ( );
108
105
T *ptr = ptr_shrd.get ();
109
106
for (size_t i = 0 ; i < size; ++i) {
110
107
check_equal_values (ptr[i], (T)0xFF );
0 commit comments