From f36546dbd2d4f1e192368ec442b02387b7d4e3c9 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Fri, 26 Dec 2014 12:03:25 +0300 Subject: [PATCH] improve error reporting in _InputArray methods --- modules/core/src/matrix.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/modules/core/src/matrix.cpp b/modules/core/src/matrix.cpp index 5a104aad56..38ff7ed53a 100644 --- a/modules/core/src/matrix.cpp +++ b/modules/core/src/matrix.cpp @@ -1527,13 +1527,15 @@ Size _InputArray::size(int i) const return d_mat->size(); } - CV_Assert( k == CUDA_HOST_MEM ); - //if( k == CUDA_HOST_MEM ) + if( k == CUDA_HOST_MEM ) { CV_Assert( i < 0 ); const cuda::HostMem* cuda_mem = (const cuda::HostMem*)obj; return cuda_mem->size(); } + + CV_Error(Error::StsNotImplemented, "Unknown/unsupported array type"); + return Size(); } int _InputArray::sizend(int* arrsz, int i) const @@ -1706,12 +1708,14 @@ int _InputArray::dims(int i) const return 2; } - CV_Assert( k == CUDA_HOST_MEM ); - //if( k == CUDA_HOST_MEM ) + if( k == CUDA_HOST_MEM ) { CV_Assert( i < 0 ); return 2; } + + CV_Error(Error::StsNotImplemented, "Unknown/unsupported array type"); + return 0; } size_t _InputArray::total(int i) const @@ -1802,9 +1806,11 @@ int _InputArray::type(int i) const if( k == CUDA_GPU_MAT ) return ((const cuda::GpuMat*)obj)->type(); - CV_Assert( k == CUDA_HOST_MEM ); - //if( k == CUDA_HOST_MEM ) + if( k == CUDA_HOST_MEM ) return ((const cuda::HostMem*)obj)->type(); + + CV_Error(Error::StsNotImplemented, "Unknown/unsupported array type"); + return 0; } int _InputArray::depth(int i) const @@ -1866,9 +1872,11 @@ bool _InputArray::empty() const if( k == CUDA_GPU_MAT ) return ((const cuda::GpuMat*)obj)->empty(); - CV_Assert( k == CUDA_HOST_MEM ); - //if( k == CUDA_HOST_MEM ) + if( k == CUDA_HOST_MEM ) return ((const cuda::HostMem*)obj)->empty(); + + CV_Error(Error::StsNotImplemented, "Unknown/unsupported array type"); + return true; } bool _InputArray::isContinuous(int i) const