Merge pull request #2279 from alalek:fix_memory_leak_getumat

pull/2280/merge
Andrey Pavlenko 11 years ago committed by OpenCV Buildbot
commit b7ffed7b46
  1. 6
      modules/core/include/opencv2/core/mat.inl.hpp
  2. 1
      modules/core/src/matrix.cpp

@ -3112,8 +3112,7 @@ UMat::UMat(const UMat& m)
: flags(m.flags), dims(m.dims), rows(m.rows), cols(m.cols), allocator(m.allocator),
u(m.u), offset(m.offset), size(&rows)
{
if( u )
CV_XADD(&(u->urefcount), 1);
addref();
if( m.dims <= 2 )
{
step[0] = m.step[0]; step[1] = m.step[1];
@ -3148,8 +3147,7 @@ UMat& UMat::operator = (const UMat& m)
{
if( this != &m )
{
if( m.u )
CV_XADD(&(m.u->urefcount), 1);
const_cast<UMat&>(m).addref();
release();
flags = m.flags;
if( dims <= 2 && m.dims <= 2 )

@ -199,7 +199,6 @@ public:
bool allocate(UMatData* u, int /*accessFlags*/) const
{
if(!u) return false;
CV_XADD(&u->urefcount, 1);
return true;
}

Loading…
Cancel
Save