HarfBuzz text shaping engine
Go to file
Behdad Esfahbod 567cedcc5f Narrow down cast operators on IntType
Say for USHORT, we were implementing casts from and to unsigned.
With this change, we cast from and to uint16_t only.  This allows
compiler more opportunities to catch possible narrowing issues in
the code.

It needed a couple of fixes in the codebase though, because
previously, if a USHORT was participating in arithmetic with signed
numbers, eg. "u + 1", the result would have been unsigned.  With
this change, it would be signed.  The correct fix is to update the
code to read "u + 1u".

That said, I think about conditionally adding back the cast
out to signed/unsigned, to facilitate better type deduction.
But I couldn't think of a real situation where that would help
with anything.  So I didn't add.  Here's what it was:

  template <typename Type2 = hb_conditional<hb_is_signed (Type), signed, unsigned>,
           hb_enable_if (sizeof (Type) < sizeof (Type2))>
  operator hb_type_identity_t<Type2> () const { return v; }

https://github.com/harfbuzz/harfbuzz/pull/2875
2021-02-22 22:32:42 -07:00
.ci [ci] Add top level directory to win32 zip file 2021-02-03 15:00:23 +02:00
.circleci [ci] Remove cmake 2021-02-22 17:14:45 -07:00
.github/workflows [atomic] Remove old Intel primitives implementation 2021-02-20 15:20:06 -07:00
docs [docs] Add destroy() call to sample 2021-02-09 14:59:40 -07:00
m4 Revert "Remove autotools build support" 2020-08-11 23:51:59 +04:30
perf [meson] Make compatbile with 0.47.0 2020-08-13 18:28:42 +04:30
src Narrow down cast operators on IntType 2021-02-22 22:32:42 -07:00
subprojects [meson] Don’t build FontConfig subproject from master 2021-02-16 22:20:26 +02:00
test [test] Fix unused-var warning 2021-02-22 17:11:36 -07:00
util [hb-subset] Improve error handling a bit 2020-10-13 11:18:59 -07:00
.clang-format Add an initial .clang-format config 2019-01-09 16:01:11 +03:30
.codecov.yml [ci] Add .codecov.yml 2018-11-26 18:58:39 +03:30
.editorconfig [meson] Minor, replace tabs with spaces 2020-03-24 19:06:09 +00:00
AUTHORS Update AUTHORS / COPYING 2019-04-21 12:26:07 -04:00
BUILD.md [docs] Remove packagers related part 2020-08-02 11:15:15 +04:30
CMakeLists.txt [cmake] Define HAVE_PTHREAD if not on win32 2021-02-22 17:38:53 -07:00
CONFIG.md Fix typo 2021-02-16 18:51:43 -07:00
COPYING Update COPYING 2020-01-26 00:07:28 +03:30
Makefile.am a[build] Fix distcheck 2021-02-20 15:46:17 -07:00
NEWS 2.7.4 2020-12-27 01:59:00 +02:00
README Revert "Remove autotools build support" 2020-08-11 23:51:59 +04:30
README.md [ci] Disable Travis CI 2020-08-02 11:08:12 +04:30
README.mingw.md [mingw] Reinstate win32 cross-compiling with autotools instructions 2021-01-24 12:28:04 -07:00
README.python.md [docs] Update README.python.md with meson 2020-08-03 18:41:49 +04:30
RELEASING.md Revert "Remove autotools build support" 2020-08-11 23:51:59 +04:30
TESTING.md [docs] Minor in TESTING.md 2020-08-14 10:19:33 +04:30
THANKS [THANKS] Add Ivan Kuckir <https://photopea.com/> 2019-04-24 15:08:27 -07:00
TODO [TODO] Remove BCP 47 language handling item 2018-10-20 21:13:25 +03:30
autogen.sh Revert "Remove autotools build support" 2020-08-11 23:51:59 +04:30
configure.ac [atomic] Remove Solaris intrinsics 2021-02-20 15:20:33 -07:00
git.mk Revert "Remove autotools build support" 2020-08-11 23:51:59 +04:30
harfbuzz.doap
meson.build [atomic] Remove Solaris intrinsics 2021-02-20 15:20:33 -07:00
meson_options.txt [meson] Disable benchmark feature by default 2021-02-09 22:10:20 +02:00
mingw-configure.sh [mingw] Reinstate win32 cross-compiling with autotools instructions 2021-01-24 12:28:04 -07:00
replace-enum-strings.cmake Revert "Remove cmake build files" 2020-08-12 01:00:33 +04:30

README.md

Linux CI Status CircleCI Build Status OSS-Fuzz Status Coverity Code Health Codacy Code Health Codecov Code Coverage Coverals Code Coverage Packaging status ABI Tracker

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 of HarfBuzz

Packaging status