Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8261300

jpackage: rewrite while(0)/while(false) to proper blocks

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 17
    • Fix Version/s: 17
    • Component/s: tools
    • Subcomponent:
    • Resolved In Build:
      b10

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              shade Aleksey Shipilev
              Reporter:
              shade Aleksey Shipilev
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: