fixes Mat::empty() and Mat::create() in the case of zero sizes (ticket #691)

pull/13383/head
Vadim Pisarevsky 14 years ago
parent 5f15cf6430
commit 3a8df6034f
  1. 2
      modules/core/include/opencv2/core/mat.hpp
  2. 2
      modules/core/src/matrix.cpp

@ -414,7 +414,7 @@ inline int Mat::type() const { return CV_MAT_TYPE(flags); }
inline int Mat::depth() const { return CV_MAT_DEPTH(flags); }
inline int Mat::channels() const { return CV_MAT_CN(flags); }
inline size_t Mat::step1(int i) const { return step.p[i]/elemSize1(); }
inline bool Mat::empty() const { return data == 0 || size.p[0] == 0; }
inline bool Mat::empty() const { return data == 0 || total() == 0; }
inline size_t Mat::total() const
{
if( dims <= 2 )

@ -205,7 +205,7 @@ void Mat::create(int d, const int* _sizes, int _type)
flags = (_type & CV_MAT_TYPE_MASK) | MAGIC_VAL;
setSize(*this, d, _sizes, 0, allocator == 0);
if( size.p[0] > 0 )
if( total() > 0 )
{
if( !allocator )
{

Loading…
Cancel
Save