diff --git a/dnn/src/common/cv/mat.cpp b/dnn/src/common/cv/mat.cpp index f44eb4f603692f814f7a5a0e1b9a933af9b66765..899c1d0b5049b49c343ad5117d9448952d545b31 100644 --- a/dnn/src/common/cv/mat.cpp +++ b/dnn/src/common/cv/mat.cpp @@ -117,23 +117,21 @@ bool Mat::equals(const Mat& rhs) const { return false; if (this->m_channels != rhs.m_channels) return false; - T* row1 = new T[m_cols * m_channels]; - T* row2 = new T[m_cols * m_channels]; + std::unique_ptr row1(new T[m_cols * m_channels]); + std::unique_ptr row2(new T[m_cols * m_channels]); megdnn_assert(row1); megdnn_assert(row2); for (size_t r = 0; r < m_rows; ++r) { - cuda_check(cudaMemcpy(row1, this->ptr(r), + cuda_check(cudaMemcpy(row1.get(), this->ptr(r), sizeof(T) * m_cols * m_channels, cudaMemcpyDeviceToHost)); - cuda_check(cudaMemcpy(row2, rhs.ptr(r), sizeof(T) * m_cols * m_channels, + cuda_check(cudaMemcpy(row2.get(), rhs.ptr(r), sizeof(T) * m_cols * m_channels, cudaMemcpyDeviceToHost)); for (size_t i = 0; i < m_cols * m_channels; ++i) { if (row1[i] != row2[i]) return false; } } - delete[] row1; - delete[] row2; return true; }