On Mon, 8 Feb 2021 09:17:46 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 This pull request has now been integrated. Changeset: 9fed6048 Author: Aleksey Shipilev <sh...@openjdk.org> URL: https://git.openjdk.java.net/jdk/commit/9fed6048 Stats: 74 lines in 2 files changed: 0 ins; 4 del; 70 mod 8261300: jpackage: rewrite while(0)/while(false) to proper blocks Reviewed-by: herrick, asemenyuk, almatvee ------------- PR: https://git.openjdk.java.net/jdk/pull/2454