diff options
Diffstat (limited to 'extern/libmv')
-rw-r--r-- | extern/libmv/ChangeLog | 8 | ||||
-rw-r--r-- | extern/libmv/libmv/simple_pipeline/bundle.cc | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/extern/libmv/ChangeLog b/extern/libmv/ChangeLog index 641d2518fb8..2e8e99af0eb 100644 --- a/extern/libmv/ChangeLog +++ b/extern/libmv/ChangeLog @@ -1,3 +1,11 @@ +commit 901b146f28825d3e05f4157ca2a34ae00261b91a +Author: Sergey Sharybin <sergey.vfx@gmail.com> +Date: Wed Mar 26 17:44:09 2014 +0600 + + Fix bad memory write in BA code when having zero-weighted tracks + + Issue was really stupid and caused by the wrong vector initialization. + commit b1381540305d69c702eb2f051bd543fb5c1c3e2c Author: Sergey Sharybin <sergey.vfx@gmail.com> Date: Thu Feb 6 18:01:58 2014 +0600 diff --git a/extern/libmv/libmv/simple_pipeline/bundle.cc b/extern/libmv/libmv/simple_pipeline/bundle.cc index 09523340ed7..f571b0fcaab 100644 --- a/extern/libmv/libmv/simple_pipeline/bundle.cc +++ b/extern/libmv/libmv/simple_pipeline/bundle.cc @@ -416,7 +416,7 @@ void EuclideanBundleCommonIntrinsics(const Tracks &tracks, vector<Marker> markers = tracks.AllMarkers(); // N-th element denotes whether track N is a constant zero-weigthed track. - vector<bool> zero_weight_tracks_flags(tracks.MaxTrack(), true); + vector<bool> zero_weight_tracks_flags(tracks.MaxTrack() + 1, true); // Residual blocks with 10 parameters are unwieldly with Ceres, so pack the // intrinsics into a single block and rely on local parameterizations to |