{
tested_rng = saved_rng;
int sz = 0, dsz = 0, slice;
- for( slice = 0; slice < maxSlice; slice++, sz += dsz )
+ for( slice = 0; slice < maxSlice && sz < SZ; slice++, sz += dsz )
{
- dsz = slice+1 < maxSlice ? (int)(cvtest::randInt(rng) % (SZ - sz + 1)) : SZ - sz;
+ dsz = slice+1 < maxSlice ? (int)(cvtest::randInt(rng) % (SZ - sz) + 1) : SZ - sz;
Mat aslice = arr[k].colRange(sz, sz + dsz);
tested_rng.fill(aslice, dist_type, A, B);
}
int bufsz = 128; //enough for 14 doubles
AutoBuffer<uchar> buffer(bufsz);
size_t offset = 0;
- cv::Mat_<cv::Point2d> x(2, 3, (cv::Point2d*)(buffer+offset)); offset += x.total()*x.elemSize();
- double& param1 = *(double*)(buffer+offset); offset += sizeof(double);
- double& param2 = *(double*)(buffer+offset); offset += sizeof(double);
+ cv::Mat_<cv::Point2d> x(2, 3, (cv::Point2d*)(buffer.data()+offset));
+ offset += x.total()*x.elemSize();
+ double& param1 = *(double*)(buffer.data()+offset);
+ offset += sizeof(double);
+ double& param2 = *(double*)(buffer.data()+offset);
param1 = -9; param2 = 2;
cv::theRNG().fill(x, cv::RNG::NORMAL, param1, param2);