On Tue, 9 Feb 2021 08:58:23 GMT, Aleksey Shipilev <sh...@openjdk.org> wrote:
>> After JDK-8254702, SonarCloud instance complains about blocks like these: >> "Change this loop body so that it can be executed more than once." >> >> int initJvmlLauncherData(JvmlLauncherData* ptr) const { >> // Store path to JLI library just behind JvmlLauncherData header. >> char* curPtr = reinterpret_cast<char*>(ptr + 1); >> do { >> const size_t count = sizeof(char) >> * (jliLibPath.size() + 1 /* trailing zero */); >> if (ptr) { >> std::memcpy(curPtr, jliLibPath.c_str(), count); >> ptr->jliLibPath = curPtr; >> } >> curPtr += count; >> } while (false); // <---- here >> >> There is no sense in having `while(false)` here, where the syntactic `{}` >> block would do. There are also other uses in the jpackage code that employ >> `while(0)` for this, and then they also trigger the inspection about the >> implicit conversion of zero int to boolean. >> >> Additional testing: >> - [x] Linux x86_64 (Ubuntu) tools/jpackage > > Aleksey Shipilev has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains four additional > commits since the last revision: > > - Fix Windows build failure: illegal break (where while loop used to be) > - Merge branch 'master' into JDK-8261300-jpackage-while-0 > - More cleanup in tstrings.cpp > - Replace with {} Marked as reviewed by asemenyuk (Committer). ------------- PR: https://git.openjdk.java.net/jdk/pull/2454