Minor bug fixes
Change-Id: I94e4521adf76a6c77db954c4a8955168e9d37b55
diff --git a/internal/ceres/iterative_schur_complement_solver.cc b/internal/ceres/iterative_schur_complement_solver.cc
index 9a66c1e..c44bd39 100644
--- a/internal/ceres/iterative_schur_complement_solver.cc
+++ b/internal/ceres/iterative_schur_complement_solver.cc
@@ -42,6 +42,7 @@
#include "ceres/internal/eigen.h"
#include "ceres/internal/scoped_ptr.h"
#include "ceres/linear_solver.h"
+#include "ceres/preconditioner.h"
#include "ceres/schur_jacobi_preconditioner.h"
#include "ceres/triplet_sparse_matrix.h"
#include "ceres/types.h"
diff --git a/internal/ceres/parameter_block.h b/internal/ceres/parameter_block.h
index 4fcafe0..3a709f4 100644
--- a/internal/ceres/parameter_block.h
+++ b/internal/ceres/parameter_block.h
@@ -77,6 +77,7 @@
ParameterBlock(double* user_state, int size, int index) {
Init(user_state, size, index, NULL);
}
+
ParameterBlock(double* user_state,
int size,
int index,
@@ -205,21 +206,21 @@
}
void EnableResidualBlockDependencies() {
- CHECK(residual_blocks_ == NULL)
+ CHECK(residual_blocks_.get() == NULL)
<< "Ceres bug: There is already a residual block collection "
<< "for parameter block: " << ToString();
- residual_blocks_ = new ResidualBlockSet;
+ residual_blocks_.reset(new ResidualBlockSet);
}
void AddResidualBlock(ResidualBlock* residual_block) {
- CHECK(residual_blocks_ != NULL)
+ CHECK(residual_blocks_.get() != NULL)
<< "Ceres bug: The residual block collection is null for parameter "
<< "block: " << ToString();
residual_blocks_->insert(residual_block);
}
void RemoveResidualBlock(ResidualBlock* residual_block) {
- CHECK(residual_blocks_ != NULL)
+ CHECK(residual_blocks_.get() != NULL)
<< "Ceres bug: The residual block collection is null for parameter "
<< "block: " << ToString();
CHECK(residual_blocks_->find(residual_block) != residual_blocks_->end())
@@ -230,7 +231,7 @@
// This is only intended for iterating; perhaps this should only expose
// .begin() and .end().
ResidualBlockSet* mutable_residual_blocks() {
- return residual_blocks_;
+ return residual_blocks_.get();
}
private:
@@ -251,8 +252,6 @@
state_offset_ = -1;
delta_offset_ = -1;
-
- residual_blocks_ = NULL;
}
bool UpdateLocalParameterizationJacobian() {
@@ -311,7 +310,7 @@
int32 delta_offset_;
// If non-null, contains the residual blocks this parameter block is in.
- ResidualBlockSet* residual_blocks_;
+ scoped_ptr<ResidualBlockSet> residual_blocks_;
// Necessary so ProblemImpl can clean up the parameterizations.
friend class ProblemImpl;