src/hb-algs.hh


Log

Author Commit Date CI Message
Behdad Esfahbod ff419789 2022-12-02T16:25:26 [subset-plan] Sort unicode_to_new_gid_list when needed
Behdad Esfahbod 35878df2 2022-11-21T19:14:03 [algs] Implement swap() for pair_t Helps priority_queue::pop_minimum and friends, which help subsetter repacker. Shows a few percentage improvement on NotoNastaliq benchmark.
Behdad Esfahbod 3ff75411 2022-11-21T13:08:55 [algs] Fix bot fail
Behdad Esfahbod 4c14043b 2022-11-21T12:56:33 [algs] Add output argument to hb_unsigned_mul_overflows()
Behdad Esfahbod 25adbb38 2022-11-21T12:47:53 [algs] Use __builtin_mul_overflow Compiles to smaller binary.
Behdad Esfahbod a10cfe3f 2022-11-21T12:37:59 [algs] Write hb_in_ranges() recursively
Behdad Esfahbod 70a5cd53 2022-11-21T08:52:33 [algs] Assert trivial copy assignable in stable_sort
Behdad Esfahbod 9bb39423 2022-11-20T17:40:54 [algs] Simplify stable_sort signatures
Behdad Esfahbod a9c6a20b 2022-11-18T18:29:12 [map] Support moving value in sink interface
Behdad Esfahbod 43a4028f 2022-11-18T15:54:34 [algs] Move hb_vector_size_t to bit-page as only user
Behdad Esfahbod 3aad7c2d 2022-11-17T15:10:47 [algs] Remove smart-pointers from hb_hash() hb_deref() handles them. I think this code predated that.
Behdad Esfahbod c9e84394 2022-07-22T09:01:07 [min/max] Don't forward argument
Behdad Esfahbod 0cc2f3c2 2022-07-21T16:46:45 [algs] Remove hb_pair_t()
Behdad Esfahbod 90e40f24 2022-07-17T15:01:04 [algs] Tweak attribute(packed) usage Allow disabling it. Also don't cast this pointer.
Behdad Esfahbod 4ee47192 2022-07-13T10:36:53 More -Wcomma fixes Fixes https://github.com/harfbuzz/harfbuzz/issues/3716
David Corbett 04c47671 2022-06-26T21:44:51 [lao] Decompose and reorder U+0EB3 around U+0EBB
Behdad Esfahbod 215a0afa 2022-06-03T01:48:46 [algs] Remove unused hb_coerce()
Behdad Esfahbod d7785a6d 2022-06-02T12:42:24 [cplusplus] Add unique_ptr
Behdad Esfahbod 7ec3aad2 2022-06-02T10:50:55 [shared_ptr] Fix hb_hash() crash on nullptr
Behdad Esfahbod a089d91f 2022-06-02T09:55:43 [hash] Adjust hash for shared_ptr, implement it for std::hash
Behdad Esfahbod e037325e 2022-06-02T08:51:12 [hash] Remove custom hash, rely on std::hash
Behdad Esfahbod 0b35940a 2022-06-01T15:10:19 Make hb::shared_ptr hashable
Behdad Esfahbod 45a22526 2022-05-31T06:23:47 [flags] Fix undefined-behavior SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/hb-buffer.hh:60:1 in failure on clusterfuzz-testcase-minimized-hb-subset-get-codepoints-fuzzer-5736539338833920
Behdad Esfahbod b4d1ec31 2022-05-19T16:06:21 [algs] Declare coerce() as constexpr
Behdad Esfahbod 15fa8afb 2022-05-02T16:46:41 Add fast-path for big-endian 32-bit byteswap Speeds up cmap format-12 decoding by some 40% as measured by the newly added test in perf/benchmark-font!
Behdad Esfahbod 8e900f2c 2022-02-17T13:28:44 Revert "hb-algs.hh: Fix build on Visual Studio 2015" This reverts commit 52c536bb8d90cf0f09e13f5e9e21bf489cc08c23. See https://github.com/harfbuzz/harfbuzz/pull/3448
Behdad Esfahbod 94517850 2022-02-13T13:39:26 [algs] Fix typo in hb_pair_t conversion operator Fixes https://github.com/harfbuzz/harfbuzz/issues/2083
Chun-wei Fan 52c536bb 2022-02-10T16:39:40 hb-algs.hh: Fix build on Visual Studio 2015 The compiler does not recognize the std::hash call on hb_decay<decltype (hb_deref (v)>, so give it a shove so that it is recognized there.
Behdad Esfahbod cd979978 2022-01-19T11:14:25 [vector] Remove old find() method
Behdad Esfahbod 92f17907 2022-01-16T07:51:35 Make hb_coerce static inline That's the pattern we follow. https://github.com/harfbuzz/harfbuzz/commit/985b63b3eeee5be1f5234fc7f13077eacf5e5b94#commitcomment-63973544
Behdad Esfahbod 19793f33 2022-01-16T07:49:40 Better try at previous commit https://github.com/harfbuzz/harfbuzz/commit/985b63b3eeee5be1f5234fc7f13077eacf5e5b94#commitcomment-63973544
Behdad Esfahbod 1173ed1f 2022-01-16T07:48:02 Try fix Mac build https://github.com/harfbuzz/harfbuzz/commit/985b63b3eeee5be1f5234fc7f13077eacf5e5b94#commitcomment-63973544
Behdad Esfahbod c0f57ccc 2022-01-16T06:59:24 [algs] Add default-construtor to hb_pair_t
Behdad Esfahbod 8a69e006 2022-01-13T16:17:34 [meta] Use std::addressof() instead of hb_addressof()
Behdad Esfahbod 47afb3ef 2022-01-13T15:26:07 [meta] Replace hb_is_pointer with std::is_pointer
Behdad Esfahbod 985b63b3 2022-01-13T13:33:07 [map] Allow invalid items to be pointer to static object By derefencing them when necessary. Also, we do not rely on trivially-copyable, so remove that assertion.
Behdad Esfahbod 1e27f95d 2022-01-13T13:10:47 [algs] Add hb_coerce()
Behdad Esfahbod cfe2b661 2022-01-13T11:42:48 [algs] Fix hash chaining to std::hash()
Behdad Esfahbod 53847dba 2022-01-10T15:04:47 [algs] Call std::hash from hb_hash()
Behdad Esfahbod 943921cf 2021-11-02T00:26:46 [meta] Use more std type_traits
Behdad Esfahbod 6d555ce8 2021-11-02T00:18:22 [meta] Use std::forward instead of hb_forward()
Behdad Esfahbod 30c05e8b 2021-11-01T23:57:00 [algs] include <new>
Behdad Esfahbod 3604f5f2 2021-11-01T22:37:42 [algs] Include <initializer_list>
Behdad Esfahbod 8c055699 2021-11-01T17:59:17 [algs] Add hb_swap() ala, and using, std::swap() Use it in vector. Use ADL idiom.
Behdad Esfahbod f09d5ed0 2021-08-19T13:06:10 [algs] Remove hb_bitwise_non()
Behdad Esfahbod b94f24ec 2021-08-19T00:48:00 [bit-set-invertible] Implement set algebra
Behdad Esfahbod 6afefe1d 2021-08-19T00:27:03 [algs] Remove unnecessary struct tag names
Behdad Esfahbod bf2c87bf 2021-07-27T13:10:41 Add hb_memcpy() that does len=0 check
Behdad Esfahbod cc16b26e 2021-02-22T17:55:47 [constexpr] IntType See https://github.com/harfbuzz/harfbuzz/pull/2875
Behdad Esfahbod c55bf551 2020-06-29T02:04:16 Remove HB_CONST_FUNC and HB_PURE_FUNC They are not necessary for inline functions.
Behdad Esfahbod cba9893a 2020-06-29T01:55:57 m[algs] Move roundf() here
Behdad Esfahbod 69464e9d 2021-02-20T15:42:44 [algs] Another try at fixing BEInt constexpr ../src/hb-algs.hh:120:3: error: body of constexpr function ‘constexpr BEInt<Type, 2>::operator Type() const [with Type = short unsigned int]’ not a return-statement
Behdad Esfahbod ff7bf881 2021-02-20T15:39:29 m[algs] Fix BEInt -Wnarrowing errors
Behdad Esfahbod e208f804 2021-02-20T15:31:27 Make constexpr BEInt<Type, 2>::operator Type() C++11-compatible Multiple return values not permitted until C++14
Behdad Esfahbod 47f01c07 2020-06-29T01:25:35 m[algs] Move BEInt here
Behdad Esfahbod e1706ffe 2020-06-29T00:59:06 m [algs] Move flags here
Behdad Esfahbod ed04174a 2021-02-05T13:36:46 Whitespace
Behdad Esfahbod 921b4e46 2021-01-29T20:35:05 [algs] Add hb_equal() Use in hb_array_t::lfind()
Behdad Esfahbod 881ad720 2021-01-21T14:27:45 [algs] Remove passthru declaration Let compiler figure it out.
Behdad Esfahbod 7c241651 2020-11-30T16:38:53 [algs] Don't forward rvalue twice Part of https://github.com/harfbuzz/harfbuzz/issues/2293
David Corbett b207eab8 2020-04-30T11:53:21 Round-trip OpenType tags through BCP 47
Ebrahim Byagowi 818f109b 2020-04-16T21:25:32 Use float in avar calculation instead ints and checking their overflows
Ebrahim Byagowi 9ffa50fe 2020-04-16T21:25:32 Add an appropriate fallback to hb_int_mul_overflows
Ebrahim Byagowi 96d792ae 2020-03-24T14:05:47 [avar] Prevent mul overflow Fixes https://crbug.com/oss-fuzz/21350
Ebrahim Byagowi b398748d 2020-03-04T11:18:19 [algs] Add hb_clamp Similar to stl and glsl's clamp
Behdad Esfahbod fa7edf87 2019-12-07T22:01:13 [bsearch] Massage API some more
Behdad Esfahbod 70aa5071 2019-12-07T22:35:34 [algs] Adjust return value of hb_ctz(0) to be 32 instead of 0
Behdad Esfahbod 48eef272 2019-12-06T05:04:11 [algs/array] Consolidate the last two bsearch implementations! Yay! Seems to work.
Behdad Esfahbod ed35dea8 2019-12-06T04:37:11 Fourth try... sighs
Behdad Esfahbod 34f5cc2c 2019-12-06T04:09:33 Second try at fixing build
Behdad Esfahbod 14ce5ab0 2019-12-06T03:54:46 First try at fixing build errors
Behdad Esfahbod 2274270c 2019-12-06T03:42:21 [algs] Streamline bsearch some more
Behdad Esfahbod bd55d4b4 2019-12-06T03:35:24 [algs] Streamline bsearch() API more towards hb_array_t::bsearch_impl() Preparing to merge the two finally!
Ebrahim Byagowi 670fec23 2019-10-10T09:21:08 Minor, add a zero length tolerant memset, hb_memset
Ebrahim Byagowi 65690b5a 2019-09-03T23:09:47 [number] Add whole buffer check and test it
Ebrahim Byagowi 3661eb61 2019-09-03T19:43:14 Don't check null terminaion of source in hb_codepoint_parse This isn't what intended originally, just checking if consumed all the buffer is enough.
Ebrahim Byagowi b5e6805e 2019-09-03T15:23:40 [number] Minor tweak on parser related codes
Ebrahim Byagowi a77bb7eb 2019-09-03T14:49:14 Move hb_codepoint_parse to hb_parse_uint
Behdad Esfahbod 3bc86fb2 2019-08-30T16:39:52 [algs] Fix hb_inc/dec signature
Behdad Esfahbod 2d5643ae 2019-08-30T09:51:22 [algs] Add hb_inc() and hb_dec())
Behdad Esfahbod 4cb180d2 2019-07-02T19:44:18 Revert "Use constexpr to replace passthru_ bools" This reverts commit c4aa10ebc8dc28b1f9c90af2ca2092a7535f8395. Broke several compilers... Sigh. The version without constexpr didn't fully optimize out the unreachable code on clang. So, revert it is...
Behdad Esfahbod c4aa10eb 2019-07-02T19:15:03 Use constexpr to replace passthru_ bools
Behdad Esfahbod 2e48fd07 2019-07-02T17:55:58 Sprinkle constexpr around Being conservative. Also not sure it makes any real difference in our codebase.
Behdad Esfahbod ec8e635e 2019-06-24T12:37:23 [ucd] Use custom encoding to shrink composition data Saves another 2.5kb. Part of https://github.com/harfbuzz/harfbuzz/issues/1652
Behdad Esfahbod 60653a7a 2019-06-18T13:01:11 Remove HB_VECTOR_SIZE It was cumbersome to get it to work reliably, for dubious performance gain, mostly in the subsetter maybe... Life is easier without. It was disabled forever anyway.
Behdad Esfahbod 24060d3a 2019-06-18T12:50:42 Add hb_bitwise_neg
Behdad Esfahbod 7cf91690 2019-06-18T12:44:03 Remove accidentally left cruft
Behdad Esfahbod ff9b9b1c 2019-06-10T12:48:25 Simplify HB_PARTIALIZE impl +this works on gcc 4.8 as well as default code path.
Behdad Esfahbod 451edbd4 2019-06-10T12:46:54 Revert "Test new solution for HB_PARTIALIZE" This reverts commit a0c4900799c26e4ff34180842a5ff21048fe31a0.
Behdad Esfahbod a0c49007 2019-06-10T12:33:23 Test new solution for HB_PARTIALIZE Just testing bots. Will finish based on results.
Ebrahim Byagowi 9407ef8d 2019-06-10T15:17:43 minor, add HB_USE_INTERNAL_QSORT The only thing I need for a working wasm in a minimum libc, otherwise I have to provide the very same qsort inside that libc
Ebrahim Byagowi c4669fda 2019-06-09T11:50:36 [algs] minor
Ebrahim Byagowi eff579f7 2019-06-07T12:58:09 Update and use internal qsort everywhere
Behdad Esfahbod 973699c4 2019-06-07T12:49:06 Disable clang gcc impersonator
Behdad Esfahbod e4e518f3 2019-06-07T12:41:09 Fix build on gcc 4.8 Fixes https://github.com/harfbuzz/harfbuzz/issues/1724
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.
Ebrahim Byagowi 760eb1bf 2019-06-03T05:48:04 Reapply possible bsearch overflow fix Originally introduced in 21ede86 (#1314) but as it wasn't applied to hb_bsearch accidentally removed while merging hb_bsearch_r to it.
Ebrahim Byagowi 8278ff7d 2019-06-02T00:36:30 minor
Ebrahim Byagowi 33d38e79 2019-06-02T00:19:57 Use a unified bsearch (#1741) A part of #593
Behdad Esfahbod 619f5f1e 2019-05-31T22:31:35 Fourth try at building VS bots Based on https://github.com/harfbuzz/harfbuzz/issues/1730#issuecomment-497151210