Merge pull request #4169 from alalek:issue_4457
This commit is contained in:
commit
ff90f2736b
@ -397,6 +397,8 @@ Mat::Mat(int _rows, int _cols, int _type, void* _data, size_t _step)
|
|||||||
data((uchar*)_data), datastart((uchar*)_data), dataend(0), datalimit(0),
|
data((uchar*)_data), datastart((uchar*)_data), dataend(0), datalimit(0),
|
||||||
allocator(0), u(0), size(&rows)
|
allocator(0), u(0), size(&rows)
|
||||||
{
|
{
|
||||||
|
CV_Assert(total() == 0 || data != NULL);
|
||||||
|
|
||||||
size_t esz = CV_ELEM_SIZE(_type), esz1 = CV_ELEM_SIZE1(_type);
|
size_t esz = CV_ELEM_SIZE(_type), esz1 = CV_ELEM_SIZE1(_type);
|
||||||
size_t minstep = cols * esz;
|
size_t minstep = cols * esz;
|
||||||
if( _step == AUTO_STEP )
|
if( _step == AUTO_STEP )
|
||||||
@ -428,6 +430,8 @@ Mat::Mat(Size _sz, int _type, void* _data, size_t _step)
|
|||||||
data((uchar*)_data), datastart((uchar*)_data), dataend(0), datalimit(0),
|
data((uchar*)_data), datastart((uchar*)_data), dataend(0), datalimit(0),
|
||||||
allocator(0), u(0), size(&rows)
|
allocator(0), u(0), size(&rows)
|
||||||
{
|
{
|
||||||
|
CV_Assert(total() == 0 || data != NULL);
|
||||||
|
|
||||||
size_t esz = CV_ELEM_SIZE(_type), esz1 = CV_ELEM_SIZE1(_type);
|
size_t esz = CV_ELEM_SIZE(_type), esz1 = CV_ELEM_SIZE1(_type);
|
||||||
size_t minstep = cols*esz;
|
size_t minstep = cols*esz;
|
||||||
if( _step == AUTO_STEP )
|
if( _step == AUTO_STEP )
|
||||||
|
@ -1583,12 +1583,12 @@ void MatOp_Initializer::multiply(const MatExpr& e, double s, MatExpr& res) const
|
|||||||
|
|
||||||
inline void MatOp_Initializer::makeExpr(MatExpr& res, int method, Size sz, int type, double alpha)
|
inline void MatOp_Initializer::makeExpr(MatExpr& res, int method, Size sz, int type, double alpha)
|
||||||
{
|
{
|
||||||
res = MatExpr(getGlobalMatOpInitializer(), method, Mat(sz, type, (void*)0), Mat(), Mat(), alpha, 0);
|
res = MatExpr(getGlobalMatOpInitializer(), method, Mat(sz, type, (void*)0xEEEEEEEE), Mat(), Mat(), alpha, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void MatOp_Initializer::makeExpr(MatExpr& res, int method, int ndims, const int* sizes, int type, double alpha)
|
inline void MatOp_Initializer::makeExpr(MatExpr& res, int method, int ndims, const int* sizes, int type, double alpha)
|
||||||
{
|
{
|
||||||
res = MatExpr(getGlobalMatOpInitializer(), method, Mat(ndims, sizes, type, (void*)0), Mat(), Mat(), alpha, 0);
|
res = MatExpr(getGlobalMatOpInitializer(), method, Mat(ndims, sizes, type, (void*)0xEEEEEEEE), Mat(), Mat(), alpha, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1178,6 +1178,11 @@ TEST(Core_IOArray, submat_create)
|
|||||||
EXPECT_THROW( OutputArray_create2(A.row(0)), cv::Exception );
|
EXPECT_THROW( OutputArray_create2(A.row(0)), cv::Exception );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(Core_Mat, issue4457_pass_null_ptr)
|
||||||
|
{
|
||||||
|
ASSERT_ANY_THROW(cv::Mat mask(45, 45, CV_32F, 0));
|
||||||
|
}
|
||||||
|
|
||||||
TEST(Core_Mat, reshape_1942)
|
TEST(Core_Mat, reshape_1942)
|
||||||
{
|
{
|
||||||
cv::Mat A = (cv::Mat_<float>(2,3) << 3.4884074, 1.4159607, 0.78737736, 2.3456569, -0.88010466, 0.3009364);
|
cv::Mat A = (cv::Mat_<float>(2,3) << 3.4884074, 1.4159607, 0.78737736, 2.3456569, -0.88010466, 0.3009364);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user