Skip to content

Commit

Permalink
Merge pull request #90 from ethz-asl/fix/vi-map-optimizer-leak
Browse files Browse the repository at this point in the history
fixed a leak, optimization problem was not freed
  • Loading branch information
dymczykm authored Aug 15, 2018
2 parents 2db80eb + 1f05506 commit 978ca39
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <ceres-error-terms/parameterization/pose-param-jpl.h>
#include <ceres-error-terms/parameterization/quaternion-param-jpl.h>
#include <ceres-error-terms/problem-information.h>
#include <maplab-common/macros.h>
#include <vi-map-helpers/mission-clustering-coobservation.h>
#include <vi-map/vi-map.h>

Expand All @@ -20,6 +21,8 @@ namespace map_optimization {

class OptimizationProblem {
public:
MAPLAB_POINTER_TYPEDEFS(OptimizationProblem);

OptimizationProblem(
vi_map::VIMap* vi_map, const vi_map::MissionIdSet& mission_ids);

Expand Down
14 changes: 7 additions & 7 deletions algorithms/map-optimization/src/vi-map-optimizer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,16 @@ bool VIMapOptimizer::optimizeVisualInertial(
return false;
}

map_optimization::OptimizationProblem* optimization_problem =
map_optimization::constructViProblem(missions_to_optimize, options, map);
CHECK_NOTNULL(optimization_problem);
map_optimization::OptimizationProblem::UniquePtr optimization_problem(
map_optimization::constructViProblem(missions_to_optimize, options, map));
CHECK(optimization_problem != nullptr);

std::vector<std::shared_ptr<ceres::IterationCallback>> callbacks;
if (plotter_) {
map_optimization::appendVisualizationCallbacks(
FLAGS_ba_visualize_every_n_iterations,
*optimization_problem->getOptimizationStateBufferMutable(), *plotter_,
map, &callbacks);
*(optimization_problem->getOptimizationStateBufferMutable()),
*plotter_, map, &callbacks);
}
map_optimization::appendSignalHandlerCallback(&callbacks);
ceres::Solver::Options solver_options_with_callbacks = solver_options;
Expand All @@ -73,10 +73,10 @@ bool VIMapOptimizer::optimizeVisualInertial(
if (outlier_rejection_options != nullptr) {
map_optimization::solveWithOutlierRejection(
solver_options_with_callbacks, *outlier_rejection_options,
optimization_problem);
optimization_problem.get());
} else {
map_optimization::solve(
solver_options_with_callbacks, optimization_problem);
solver_options_with_callbacks, optimization_problem.get());
}

if (plotter_ != nullptr) {
Expand Down

0 comments on commit 978ca39

Please sign in to comment.