diff --git a/include/aidge/backend/opencv/data/TensorImpl.hpp b/include/aidge/backend/opencv/data/TensorImpl.hpp index 4b548d2157219a3172b947013e4e53faee65d31a..d5254fbd66e60dd3a89ee457873342a6445cca4a 100644 --- a/include/aidge/backend/opencv/data/TensorImpl.hpp +++ b/include/aidge/backend/opencv/data/TensorImpl.hpp @@ -91,10 +91,10 @@ public: } void copy(const void *src, NbElts_t length, NbElts_t offset = 0) override final { + AIDGE_ASSERT(offset + length <= mNbElts, "TensorImpl_opencv<{}>::copy(): copy offset ({}) + length ({}) is above capacity ({})", typeid(T).name(), offset, length, mNbElts); const T* srcT = static_cast<const T *>(src); T* dstT = static_cast<T *>(rawPtr(offset)); - AIDGE_ASSERT(length <= (mData.total() * mData.channels()) || length <= mNbElts, "TensorImpl_opencv<{}>::copy(): copy length ({}) is above capacity ({})", typeid(T).name(), length, mNbElts); AIDGE_ASSERT(dstT < srcT || dstT >= srcT + length, "TensorImpl_opencv<{}>::copy(): overlapping copy is not supported", typeid(T).name()); std::copy(srcT, srcT + length, dstT); @@ -105,8 +105,8 @@ public: return; } + AIDGE_ASSERT(offset + length <= mNbElts, "TensorImpl_opencv<{}>::copyCast(): copy offset ({}) + length ({}) is above capacity ({})", typeid(T).name(), offset, length, mNbElts); T* dstT = static_cast<T *>(rawPtr(offset)); - AIDGE_ASSERT(length <= (mData.total() * mData.channels()) || length <= mNbElts, "TensorImpl_opencv<{}>::copyCast(): copy length ({}) is above capacity ({})", typeid(T).name(), length, mNbElts); switch (srcDt) { case DataType::Float64: @@ -171,8 +171,8 @@ public: } void copyToHost(void *dst, NbElts_t length, NbElts_t offset = 0) const override final { + AIDGE_ASSERT(offset + length <= mNbElts, "TensorImpl_opencv<{}>::copyToHost(): copy offset ({}) + length ({}) is above capacity ({})", typeid(T).name(), offset, length, mNbElts); const T* src = static_cast<const T*>(rawPtr(offset)); - AIDGE_ASSERT(length <= (mData.total() * mData.channels()) || length <= mNbElts, "TensorImpl_opencv<{}>::copyToHost(): copy length ({}) is above capacity ({})", typeid(T).name(), length, mNbElts); std::copy(src, src + length, static_cast<T *>(dst)); }