From 447bb905eb9c89da50f196a8ce4dc7677717d78f Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Fri, 23 Apr 2021 19:39:25 -0700 Subject: [PATCH] Fix incorrect index checking in getValuesFromVector() in MetaSkeleton.cpp (#1577) --- dart/dynamics/MetaSkeleton.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/dart/dynamics/MetaSkeleton.cpp b/dart/dynamics/MetaSkeleton.cpp index d1d6679cdaabb..6b514c89a894f 100644 --- a/dart/dynamics/MetaSkeleton.cpp +++ b/dart/dynamics/MetaSkeleton.cpp @@ -167,35 +167,35 @@ static void setAllValuesFromVector( template static Eigen::VectorXd getValuesFromVector( const MetaSkeleton* skel, - const std::vector& _indices, - const std::string& _fname) + const std::vector& indices, + const std::string& fname) { - Eigen::VectorXd values(_indices.size()); + Eigen::VectorXd values(indices.size()); - for (std::size_t i = 0; i < _indices.size(); ++i) + for (std::size_t i = 0; i < indices.size(); ++i) { - const DegreeOfFreedom* dof = skel->getDof(_indices[i]); - if (dof) + const std::size_t index = indices[i]; + if (const DegreeOfFreedom* dof = skel->getDof(index)) { values[i] = (dof->*getValue)(); } else { values[i] = 0.0; - if (i < skel->getNumDofs()) + if (index < skel->getNumDofs()) { - dterr << "[MetaSkeleton::" << _fname << "] Requesting value for " - << "DegreeOfFreedom #" << _indices[i] << " (" - << "entry #" << i << " in _indices), but this index has expired! " + dterr << "[MetaSkeleton::" << fname << "] Requesting value for " + << "DegreeOfFreedom #" << index << " (" + << "entry #" << i << " in indices), but this index has expired! " << "ReferentialSkeletons should call update() after structural " << "changes have been made to the BodyNodes they refer to. The " << "return value for this entry will be zero.\n"; } else { - dterr << "[MetaSkeleton::" << _fname << "] Requesting out of bounds " - << "DegreeOfFreedom #" << _indices[i] << " (entry #" << i - << " in _indices) for MetaSkeleton named [" << skel->getName() + dterr << "[MetaSkeleton::" << fname << "] Requesting out of bounds " + << "DegreeOfFreedom #" << index << " (entry #" << i + << " in indices) for MetaSkeleton named [" << skel->getName() << "] (" << skel << "). The max index is (" << skel->getNumDofs() << "). The return value for this entry will be zero.\n"; }