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

Reply via email to