Skip to content

Commit ac118ae

Browse files
committed
Merge pull request opencv#7733 from alalek:debug_check_matrelease_2.4
2 parents f6d5a1d + 56ed8b1 commit ac118ae

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

modules/calib3d/src/fisheye.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,8 +1028,10 @@ double cv::fisheye::stereoCalibrate(InputArrayOfArrays objectPoints, InputArrayO
10281028
int a = cv::countNonZero(intrinsicLeft.isEstimate);
10291029
int b = cv::countNonZero(intrinsicRight.isEstimate);
10301030
cv::Mat deltas = J2_inv * J.t() * e;
1031-
intrinsicLeft = intrinsicLeft + deltas.rowRange(0, a);
1032-
intrinsicRight = intrinsicRight + deltas.rowRange(a, a + b);
1031+
if (a > 0)
1032+
intrinsicLeft = intrinsicLeft + deltas.rowRange(0, a);
1033+
if (b > 0)
1034+
intrinsicRight = intrinsicRight + deltas.rowRange(a, a + b);
10331035
omcur = omcur + cv::Vec3d(deltas.rowRange(a + b, a + b + 3));
10341036
Tcur = Tcur + cv::Vec3d(deltas.rowRange(a + b + 3, a + b + 6));
10351037
for (int image_idx = 0; image_idx < n_images; ++image_idx)

modules/core/include/opencv2/core/mat.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,16 @@ inline void Mat::release()
368368
data = datastart = dataend = datalimit = 0;
369369
for(int i = 0; i < dims; i++)
370370
size.p[i] = 0;
371+
#ifdef _DEBUG
372+
flags = MAGIC_VAL;
373+
dims = rows = cols = 0;
374+
if (step.p != step.buf)
375+
{
376+
fastFree(step.p);
377+
step.p = step.buf;
378+
size.p = &rows;
379+
}
380+
#endif
371381
refcount = 0;
372382
}
373383

0 commit comments

Comments
 (0)