Commit d2a66d3c authored by Alexander Alekhin's avatar Alexander Alekhin

Merge pull request #12815 from alalek:issue_12812

parents 0f41daeb 8c4f886f
...@@ -355,15 +355,16 @@ void Mat::create(int d, const int* _sizes, int _type) ...@@ -355,15 +355,16 @@ void Mat::create(int d, const int* _sizes, int _type)
#endif #endif
if(!a) if(!a)
a = a0; a = a0;
CV_TRY try
{ {
u = a->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT); u = a->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT);
CV_Assert(u != 0); CV_Assert(u != 0);
} }
CV_CATCH_ALL catch (...)
{ {
if(a != a0) if (a == a0)
u = a0->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT); throw;
u = a0->allocate(dims, size, _type, 0, step.p, 0, USAGE_DEFAULT);
CV_Assert(u != 0); CV_Assert(u != 0);
} }
CV_Assert( step[dims-1] == (size_t)CV_ELEM_SIZE(flags) ); CV_Assert( step[dims-1] == (size_t)CV_ELEM_SIZE(flags) );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment