From 4e34d644533167b0e9a747d6f185aacc6bd72822 Mon Sep 17 00:00:00 2001 From: Jose Luis Blanco-Claraco Date: Tue, 28 Jul 2020 12:05:41 +0200 Subject: [PATCH] Fix serialization bug in RangeFactor Closes #443 --- gtsam/sam/RangeFactor.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gtsam/sam/RangeFactor.h b/gtsam/sam/RangeFactor.h index abf11d179..0bc997044 100644 --- a/gtsam/sam/RangeFactor.h +++ b/gtsam/sam/RangeFactor.h @@ -135,9 +135,12 @@ class RangeFactorWithTransform : public ExpressionFactorN { friend class boost::serialization::access; template void serialize(ARCHIVE& ar, const unsigned int /*version*/) { + // **IMPORTANT** We need to (de)serialize parameters before the base class, + // since it calls expression() and we need all parameters ready at that + // point. + ar& BOOST_SERIALIZATION_NVP(body_T_sensor_); ar& boost::serialization::make_nvp( "Base", boost::serialization::base_object(*this)); - ar& BOOST_SERIALIZATION_NVP(body_T_sensor_); } }; // \ RangeFactorWithTransform