From 3a4c197d56b2f0d738432487ec88447c1e900469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AF=85?= Date: Fri, 9 Mar 2018 12:14:22 +0800 Subject: [PATCH] Fix buffer ownership bug --- mace/core/tensor.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mace/core/tensor.h b/mace/core/tensor.h index 9017dafa..66c9c195 100644 --- a/mace/core/tensor.h +++ b/mace/core/tensor.h @@ -72,7 +72,10 @@ class Tensor { name_(""){}; Tensor(BufferBase *buffer, DataType dtype) - : dtype_(dtype), buffer_(buffer), is_buffer_owner_(false), name_("") {} + : dtype_(dtype), + buffer_(buffer), + is_buffer_owner_(false), + name_("") {} Tensor(const BufferSlice &buffer_slice, DataType dtype) : dtype_(dtype), @@ -166,8 +169,8 @@ class Tensor { MACE_CHECK(!has_opencl_image(), "Cannot resize image, use ResizeImage."); buffer_->Resize(raw_size()); } else { + MACE_CHECK(is_buffer_owner_); buffer_ = new Buffer(allocator_, raw_size()); - is_buffer_owner_ = true; } } @@ -176,8 +179,8 @@ class Tensor { shape_ = shape; image_shape_ = image_shape; if (buffer_ == nullptr) { + MACE_CHECK(is_buffer_owner_); buffer_ = new Image(image_shape, dtype_); - is_buffer_owner_ = true; } else { MACE_CHECK(has_opencl_image(), "Cannot ResizeImage buffer, use Resize."); Image *image = dynamic_cast(buffer_); -- GitLab