fix array allocator with user buffer and deleter (#2971)
This commit is contained in:
+1
-1
@@ -96,7 +96,7 @@ array::array(
|
||||
deleter(data);
|
||||
} else {
|
||||
auto wrapped_deleter = [deleter](allocator::Buffer buffer) {
|
||||
auto ptr = buffer.ptr();
|
||||
auto ptr = buffer.raw_ptr();
|
||||
allocator::release(buffer);
|
||||
return deleter(ptr);
|
||||
};
|
||||
|
||||
@@ -613,7 +613,12 @@ TEST_CASE("test make array from user buffer") {
|
||||
std::vector<int> buffer(size, 0);
|
||||
|
||||
int count = 0;
|
||||
auto deleter = [&count](void*) { count++; };
|
||||
auto deleter = [&count, data = buffer.data()](void* ptr) {
|
||||
// make sure pointer is correct
|
||||
if (ptr == data) {
|
||||
count++;
|
||||
}
|
||||
};
|
||||
|
||||
{
|
||||
auto a = array(buffer.data(), Shape{size}, int32, deleter);
|
||||
|
||||
Reference in New Issue
Block a user