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

Reply via email to