Merge pull request #12815 from alalek:issue_12812

This commit is contained in:
Alexander Alekhin 2018-10-13 13:12:55 +00:00
commit d2a66d3c99

View File

@ -355,15 +355,16 @@ void Mat::create(int d, const int* _sizes, int _type)
#endif
if(!a)
a = a0;
CV_TRY
try
{
u = a->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT);
CV_Assert(u != 0);
}
CV_CATCH_ALL
catch (...)
{
if(a != a0)
u = a0->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT);
if (a == a0)
throw;
u = a0->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT);
CV_Assert(u != 0);
}
CV_Assert( step[dims-1] == (size_t)CV_ELEM_SIZE(flags) );