fix array allocator with user buffer and deleter (#2971)

This commit is contained in:
Ronan Collobert
2026-01-07 10:08:22 -08:00
committed by GitHub
parent 503731727d
commit 1596839256
2 changed files with 7 additions and 2 deletions
+1 -1
View File
@@ -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);
};
+6 -1
View File
@@ -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);