diff --git a/src/test/gtest_constraint_autodiff.cpp b/src/test/gtest_constraint_autodiff.cpp
index 52b5d1c121987779fb20661319f5b8f1a27fd8ad..c5820537f54d0aaf8e251cc4867a88b82f1d0e33 100644
--- a/src/test/gtest_constraint_autodiff.cpp
+++ b/src/test/gtest_constraint_autodiff.cpp
@@ -74,7 +74,14 @@ TEST(CaptureAutodiff, ResidualOdom2d)
     fr1_ptr->addConstrainedBy(constraint_ptr);
 
     // EVALUATE
-    std::vector<Scalar*> states_ptr({fr1_ptr->getPPtr()->getPtr(), fr1_ptr->getOPtr()->getPtr(), fr2_ptr->getPPtr()->getPtr(), fr2_ptr->getOPtr()->getPtr()});
+
+    Eigen::VectorXs fr1_pstate = fr1_ptr->getPPtr()->getState();
+    Eigen::VectorXs fr1_ostate = fr1_ptr->getOPtr()->getState();
+    Eigen::VectorXs fr2_pstate = fr2_ptr->getPPtr()->getState();
+    Eigen::VectorXs fr2_ostate = fr2_ptr->getOPtr()->getState();
+
+    std::vector<Scalar*> states_ptr({fr1_pstate.data(), fr1_ostate.data(), fr2_pstate.data(), fr2_ostate.data()});
+
     double const* const* parameters = states_ptr.data();
     Eigen::VectorXs residuals(constraint_ptr->getSize());
     constraint_ptr->evaluate(parameters, residuals.data(), nullptr);
@@ -111,7 +118,14 @@ TEST(CaptureAutodiff, JacobianOdom2d)
     fr1_ptr->addConstrainedBy(constraint_ptr);
 
     // COMPUTE JACOBIANS
-    std::vector<const Scalar*> states_ptr({fr1_ptr->getPPtr()->getPtr(), fr1_ptr->getOPtr()->getPtr(), fr2_ptr->getPPtr()->getPtr(), fr2_ptr->getOPtr()->getPtr()});
+
+    const Eigen::VectorXs fr1_pstate = fr1_ptr->getPPtr()->getState();
+    const Eigen::VectorXs fr1_ostate = fr1_ptr->getOPtr()->getState();
+    const Eigen::VectorXs fr2_pstate = fr2_ptr->getPPtr()->getState();
+    const Eigen::VectorXs fr2_ostate = fr2_ptr->getOPtr()->getState();
+
+    std::vector<const Scalar*> states_ptr({fr1_pstate.data(), fr1_ostate.data(), fr2_pstate.data(), fr2_ostate.data()});
+
     std::vector<Eigen::MatrixXs> Jauto;
     Eigen::VectorXs residuals(constraint_ptr->getSize());
     constraint_ptr->evaluate(states_ptr, residuals, Jauto);
@@ -186,7 +200,14 @@ TEST(CaptureAutodiff, AutodiffVsAnalytic)
     fr1_ptr->addConstrainedBy(ctr_analytic_ptr);
 
     // COMPUTE JACOBIANS
-    std::vector<const Scalar*> states_ptr({fr1_ptr->getPPtr()->getPtr(), fr1_ptr->getOPtr()->getPtr(), fr2_ptr->getPPtr()->getPtr(), fr2_ptr->getOPtr()->getPtr()});
+
+    const Eigen::VectorXs fr1_pstate = fr1_ptr->getPPtr()->getState();
+    const Eigen::VectorXs fr1_ostate = fr1_ptr->getOPtr()->getState();
+    const Eigen::VectorXs fr2_pstate = fr2_ptr->getPPtr()->getState();
+    const Eigen::VectorXs fr2_ostate = fr2_ptr->getOPtr()->getState();
+
+    std::vector<const Scalar*> states_ptr({fr1_pstate.data(), fr1_ostate.data(), fr2_pstate.data(), fr2_ostate.data()});
+
     std::vector<Eigen::MatrixXs> Jautodiff, Janalytic;
     Eigen::VectorXs residuals(ctr_autodiff_ptr->getSize());
     clock_t t = clock();