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

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

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 17
    • 17
    • tools
    • b10

      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.

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

              Created:
              Updated:
              Resolved: