src/hb-atomic.hh


Log

Author Commit Date CI Message
Behdad Esfahbod 4807a021 2025-03-12T18:27:27 [atomic] Kill hb_atomic_ptr_t<T> Use hb_atomic_t<T *> instead.
Behdad Esfahbod 829d1eda 2025-03-12T18:19:04 [atomic] Clean up atomic_ptr_t
Behdad Esfahbod a0d76c5b 2025-03-12T16:33:13 [atomic] Templatize
Behdad Esfahbod aa268fc8 2025-03-09T03:31:01 [font/ft] See if tsan is happy with atomic_int_t serials
Behdad Esfahbod 0e13e781 2025-02-02T16:50:04 [aat] Add a class-cache to the machine Speeds up Times.ttc benchmark by 20%.
Behdad Esfahbod 30672c7e 2023-11-03T18:52:03 Add hb_barrier() And annotate some more.
Behdad Esfahbod b16f1800 2023-11-03T17:51:50 [sanitize] Yet another hack to "fix" barrier issue
Behdad Esfahbod 43ec78f9 2023-06-23T10:22:30 [subset/cff] Cache CFF accelerator in hb_subset_plan_t This shows 7% speedup in: BM_subset/subset_glyphs/SourceHanSans-Regular_subset.otf/retaingids/10
Behdad Esfahbod a9a9f278 2023-04-24T14:16:48 [atomic] Remove incomplete comment
Behdad Esfahbod e76a3649 2023-04-22T10:20:25 [atomic] Comment
Behdad Esfahbod b41efb6c 2023-02-13T21:16:16 [atomic] Use no-op asm for compiler barrier Fixes https://github.com/harfbuzz/harfbuzz/pull/4119
Behdad Esfahbod a924bbcf 2023-01-30T14:13:33 [atomic/cache] Add hb_atomic_short_t
Behdad Esfahbod f73c15ca 2022-08-03T12:54:03 [atomic-int] Add operators for relaxed ops
Behdad Esfahbod 86d1e22d 2022-08-03T12:43:28 [atomic-ptr] Rename get
Behdad Esfahbod d3f2287e 2022-08-03T12:37:41 [atomic-int] Rename get/set
Behdad Esfahbod 9518d602 2022-07-17T17:03:40 [atomic] Disable compiler memory barrier on MSVC It keeps giving me internal compiler error. https://github.com/harfbuzz/harfbuzz/issues/3728
Behdad Esfahbod f0707e23 2022-07-17T16:47:16 [atomic] Add compiler memory_r_barrier https://github.com/harfbuzz/harfbuzz/issues/3728
Behdad Esfahbod 67b3962f 2021-09-22T16:21:27 [atomic] Cannot fail anymore
Behdad Esfahbod b368a073 2021-02-22T17:23:53 [atomic] Remove IBM/AIX implementation The C++11 implementation shall be enough for everyone.
Behdad Esfahbod 52f91269 2021-02-22T17:22:09 [atomic] Remove Windows implementation Since we require C++11 now, there's no point to do a macro version check. Which means we don't hit the MSVC issue defining __cplusplus wrongly.
Behdad Esfahbod a666fe64 2020-06-29T10:43:49 [atomic] Comment
Behdad Esfahbod 3528a21e 2020-06-29T10:40:21 [atomic] Remove Apple implementation Continuation of https://github.com/harfbuzz/harfbuzz/pull/676
Behdad Esfahbod 140797d4 2020-06-29T03:51:09 [constexpr] hb_atomic_int_t
Behdad Esfahbod c2fc2aa4 2020-06-29T01:49:28 [atomic] Remove Solaris intrinsics
Behdad Esfahbod 7099a6dc 2020-06-29T01:47:37 [atomic] Remove old Intel primitives implementation
Behdad Esfahbod 5e489670 2019-10-22T15:03:47 Remove hb-warning.cc Fixes https://github.com/harfbuzz/harfbuzz/issues/2005
Eli Zaretskii d5e5f378 2019-06-05T22:20:03 This makes minor changes to allow building HarfBuzz with mingw.org's MinGW. src/hb-algs.hh: Don't compile _BitScanForward and _BitScanReverse for GCC >= 4. mingw.org's MinGW doesn't have these functions. src/hb-atomic.hh: MemoryBarrier does exist in mingw.org's MinGW, but it is not a macro, it is an inline function. __MINGW32_VERSION is a macro that exists only in mingw.org's MinGW, so conditioning on it should not affect MinGW64, where MemoryBarrier is a macro. src/hb-uniscribe.cc: Define E_NOT_SUFFICIENT_BUFFER if it is not defined (mingw.org's MinGW doesn't). src/hb.hh: Don't include intrin.h for mingw.org's MinGW, since that header is not available; instead, include windows.h. Conditioned on __MINGW32_VERSION to avoid affecting MinGW64.
Behdad Esfahbod 179570d4 2019-05-27T13:08:07 [atomic] Fix warning, second time Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1554306
Behdad Esfahbod 85b68a42 2019-05-25T12:59:01 [atomic] Fix warnings https://bugzilla.mozilla.org/show_bug.cgi?id=1554306
Behdad Esfahbod 227d85e1 2019-05-10T23:15:58 Minor
Behdad Esfahbod 54ece299 2019-04-16T16:45:53 Use type aliasing for meta-functions, ie. those returning a type
Stephan Bergmann 7b7852ef 2019-03-05T17:18:57 Fix hb_atomic_* variants based on C++11 atomics I stumbled over this when trying to upgrade the version of HarfBuzz used by LibreOffice to 3.2.1 (see <https://gerrit.libreoffice.org/plugins/gitiles/core/ +/b7ddc514bff9bdf682abae537f990aa01dc2c0fb%5E!/> "Upgrade to latest HarfBuzz 2.3.1"), where building with MSVC 2017 failed like > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2440: 'reinterpret_cast': cannot convert from 'const int *' to 'std::atomic<int> *' > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): note: Conversion loses qualifiers > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2227: left of '->load' must point to class/struct/union/generic type (see <https://ci.libreoffice.org/job/gerrit_windows/29916/>). I added all the necessary "const" to make building of HarfBuzz 2.3.1 with MSVC 2017 succeed for me. There may be more missing at least conceptually.
Behdad Esfahbod a030ce4f 2019-03-28T21:26:50 Merge branch 'master' into iter
Stephan Bergmann d936ad45 2019-03-05T17:18:57 Fix hb_atomic_* variants based on C++11 atomics I stumbled over this when trying to upgrade the version of HarfBuzz used by LibreOffice to 3.2.1 (see <https://gerrit.libreoffice.org/plugins/gitiles/core/ +/b7ddc514bff9bdf682abae537f990aa01dc2c0fb%5E!/> "Upgrade to latest HarfBuzz 2.3.1"), where building with MSVC 2017 failed like > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2440: 'reinterpret_cast': cannot convert from 'const int *' to 'std::atomic<int> *' > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): note: Conversion loses qualifiers > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2227: left of '->load' must point to class/struct/union/generic type (see <https://ci.libreoffice.org/job/gerrit_windows/29916/>). I added all the necessary "const" to make building of HarfBuzz 2.3.1 with MSVC 2017 succeed for me. There may be more missing at least conceptually.
Behdad Esfahbod c1e5ba81 2019-02-15T16:06:03 Merge remote-tracking branch 'origin/master' into iter
Martin 5c2bb1de 2019-02-15T19:23:46 Support xlclang++ on AIX. (#1584)
Behdad Esfahbod f64ea8fc 2018-12-30T18:49:34 [meta] Move code around
Behdad Esfahbod d552b681 2018-12-30T18:54:07 [meta] Move typename around We'll see if bots like.
prrace 37c14bc7 2018-12-17T14:59:37 Fix Solaris use after free (#1495)
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod f99abcc3 2018-11-24T00:22:21 Add template-function convenience macros
Behdad Esfahbod 2092f595 2018-11-13T19:49:06 Merge pull request #1380 from kbrow1i/cygwin Don't use Win32 API on Cygwin
Behdad Esfahbod 475be9d5 2018-11-13T13:01:13 Fix Windows build
Behdad Esfahbod 9579ed97 2018-11-13T11:45:12 Make atomic types' internal values non-mutable This resulted from confusion previously...
Ken Brown eee5b5ed 2018-11-12T21:05:39 Don't use Win32 API on Cygwin Cygwin is a Posix platform to the extent possible. It should use the Posix API except in special circumstances.
Behdad Esfahbod f6fc5574 2018-11-05T13:23:54 Add pointer magic operators to hb_atomic_ptr_t
Behdad Esfahbod 07386ea4 2018-10-22T21:18:27 Remove const and references when binding Null() Fixes https://github.com/harfbuzz/harfbuzz/issues/1299 Removes anomaly I was seeing in cpal table trying to use implicit Null(NameID).
Behdad Esfahbod b435df3a 2018-09-28T09:13:14 More atomic tuneup
Behdad Esfahbod d2542cd2 2018-09-27T17:23:24 More atomic fixup
Behdad Esfahbod 3ee96984 2018-09-27T17:20:26 Fixup atomics from recent change
Behdad Esfahbod ec743fce 2018-09-26T16:37:18 Add more atomic intrinsics
Behdad Esfahbod 606bf574 2018-09-16T19:33:48 Revert forcing use of single-parameter static_assert() Some clang versions define static_assert as a macro apparently, so we cannot redefine it... This reverts commit 94bfea0ce6a7b4d5641c198d50751748a353df11. This reverts commit 4e62627831e7457ed60ff87712570065b14b200a.
Behdad Esfahbod 4e626278 2018-09-16T18:09:36 Enforce single-param static_assert() only So we don't accidentally break it again.
Behdad Esfahbod d42f0e58 2018-09-10T11:05:33 [atomic] Fix pointer type passed to InterlockedExchangeAdd() John Emmas reported on mailing list that build with MSVC is failing. Not sure why bots don't catch it, but this should fix.
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.