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

-------------

Commit messages:
 - Replace with {}

Changes: https://git.openjdk.java.net/jdk/pull/2454/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2454&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8261300
  Stats: 22 lines in 1 file changed: 0 ins; 0 del; 22 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2454.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2454/head:pull/2454

PR: https://git.openjdk.java.net/jdk/pull/2454

Reply via email to