Modify dubious? c++ iterator increment which was causing a crash on ARM

This commit is contained in:
Jean-Francois Dockes 2020-10-12 20:17:49 +02:00
parent 25eda37bc9
commit c42fe8c105

View File

@ -1689,13 +1689,20 @@ bool RclConfig::processFilterCmd(std::vector<std::string>& cmd) const
bool hasinterp = !stringlowercmp("python", *it) ||
!stringlowercmp("perl", *it);
*it++ = findFilter(*it);
// Note that, if the cmd vector size is 1, post-incrementing the
// iterator in the following statement, which works on x86, leads
// to a crash on ARM with gcc 6 and 8 (at least), which does not
// seem right (it should just become cmd.end() ?) but
// whatever... We do it later then.
*it = findFilter(*it);
if (hasinterp) {
if (cmd.size() < 2) {
LOGERR("processFilterCmd: python/perl cmd: no script?. [" <<
stringsToString(cmd) << "]\n");
return false;
} else {
++it;
*it = findFilter(*it);
}
}