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

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

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 17
    • 17
    • tools
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: