diff --git a/include/hpp/manipulation/path-optimization/enforce-transition-semantic.hh b/include/hpp/manipulation/path-optimization/enforce-transition-semantic.hh index 570e0d6bc39944fd7d4309886da396b570101411..2a15ca687569dd0b116dba03fd9e95793ec6219e 100644 --- a/include/hpp/manipulation/path-optimization/enforce-transition-semantic.hh +++ b/include/hpp/manipulation/path-optimization/enforce-transition-semantic.hh @@ -38,6 +38,7 @@ namespace hpp { static Ptr_t create (const core::ProblemConstPtr_t& problem) { ProblemConstPtr_t p (HPP_DYNAMIC_PTR_CAST(const Problem, problem)); + if (!p) throw std::invalid_argument("This is not a manipulation problem."); return Ptr_t (new EnforceTransitionSemantic (p)); } diff --git a/src/path-optimization/spline-gradient-based.cc b/src/path-optimization/spline-gradient-based.cc index 592d8788e8d253f3599c8f4ae3992962cd45e6a5..8a961abdbfc259d443587e84e796d8ca12c2b2df 100644 --- a/src/path-optimization/spline-gradient-based.cc +++ b/src/path-optimization/spline-gradient-based.cc @@ -50,7 +50,8 @@ namespace hpp { typename SplineGradientBased<_PB, _SO>::Ptr_t SplineGradientBased<_PB, _SO>::createFromCore (const core::ProblemConstPtr_t& problem) { - assert(HPP_DYNAMIC_PTR_CAST(const Problem, problem)); + if (!HPP_DYNAMIC_PTR_CAST(const Problem, problem)) + throw std::invalid_argument("This is not a manipulation problem."); return create (HPP_STATIC_PTR_CAST(const Problem, problem)); }