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

freetypecheck compares versions using lexicographic comparison

    XMLWordPrintable

    Details

    • Subcomponent:
    • Introduced In Build:
      b00
    • Introduced In Version:
    • Resolved In Build:
      master
    • CPU:
      generic
    • OS:
      generic

      Description

      Bizarrely, the freetypecheck build tool in OpenJDK 7 and below converts the FreeType major, minor and patch version numbers from its header files and library into a dotted string, before comparing it with REQUIRED_FREETYPE_VERSION (currently 2.3.0) using strcmp.

      While this works when all the version numbers are single digits, it fails as soon as we run into comparisons with numbers of 10 and up.

      With FreeType 2.10.0 released in March 2019, the version check now fails, believing 2.10.0 to be older than 2.3.0, because the character '1' is smaller than the character '3'.

      We can fix this by instead converting "2.3.0" into its component version numbers and comparing them numerically with those obtained from FreeType.

        Attachments

          Activity

            People

            Assignee:
            andrew Andrew Hughes
            Reporter:
            andrew Andrew Hughes
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: