[subset] Fix cpal subsetting when there are partial palette overlaps.

The existing code doesn't correctly handle the case where palettes partially overlap in the color record array. This changes the subsetting to only share entries in the color record array when palettes have the same first color index. Partially overlapping palettes will be converted to disjoint segments in the color record array.

Updates one of the color tests to use multiple palettes.

Also fixes fuzzer: https://oss-fuzz.com/testcase-detail/5568200165687296.
7 files changed
tree: 7e304bc93d89a022fe9a9166c590ba21c7135bf7
  1. .ci/
  2. .circleci/
  3. .github/
  4. docs/
  5. m4/
  6. perf/
  7. src/
  8. subprojects/
  9. test/
  10. util/
  11. .clang-format
  12. .codecov.yml
  13. .editorconfig
  14. AUTHORS
  15. autogen.sh
  16. BUILD.md
  17. CMakeLists.txt
  18. CONFIG.md
  19. configure.ac
  20. COPYING
  21. git.mk
  22. harfbuzz.doap
  23. Makefile.am
  24. meson.build
  25. meson_options.txt
  26. mingw-configure.sh
  27. NEWS
  28. README
  29. README.md
  30. README.mingw.md
  31. README.python.md
  32. RELEASING.md
  33. replace-enum-strings.cmake
  34. TESTING.md
  35. THANKS
README.md

Linux CI Status CircleCI Build Status OSS-Fuzz Status Coverity Scan Build Status Codacy Badge Codecov Code Coverage Packaging status

This is HarfBuzz, a text shaping library.

For bug reports, mailing list, and other information please visit:

http://harfbuzz.org/

For license information, see COPYING.

For build information, see BUILD.md.

For custom configurations, see CONFIG.md.

For test execution, see TESTING.md.

Documentation: https://harfbuzz.github.io

Packaging status