|
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!
|
|
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
|
|
94517850
|
2022-02-13T13:39:26
|
|
[algs] Fix typo in hb_pair_t conversion operator
Fixes https://github.com/harfbuzz/harfbuzz/issues/2083
|
|
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.
|
|
cd979978
|
2022-01-19T11:14:25
|
|
[vector] Remove old find() method
|
|
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
|
|
19793f33
|
2022-01-16T07:49:40
|
|
Better try at previous commit
https://github.com/harfbuzz/harfbuzz/commit/985b63b3eeee5be1f5234fc7f13077eacf5e5b94#commitcomment-63973544
|
|
1173ed1f
|
2022-01-16T07:48:02
|
|
Try fix Mac build
https://github.com/harfbuzz/harfbuzz/commit/985b63b3eeee5be1f5234fc7f13077eacf5e5b94#commitcomment-63973544
|
|
c0f57ccc
|
2022-01-16T06:59:24
|
|
[algs] Add default-construtor to hb_pair_t
|
|
8a69e006
|
2022-01-13T16:17:34
|
|
[meta] Use std::addressof() instead of hb_addressof()
|
|
47afb3ef
|
2022-01-13T15:26:07
|
|
[meta] Replace hb_is_pointer with std::is_pointer
|
|
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.
|
|
1e27f95d
|
2022-01-13T13:10:47
|
|
[algs] Add hb_coerce()
|
|
cfe2b661
|
2022-01-13T11:42:48
|
|
[algs] Fix hash chaining to std::hash()
|
|
53847dba
|
2022-01-10T15:04:47
|
|
[algs] Call std::hash from hb_hash()
|
|
943921cf
|
2021-11-02T00:26:46
|
|
[meta] Use more std type_traits
|
|
6d555ce8
|
2021-11-02T00:18:22
|
|
[meta] Use std::forward instead of hb_forward()
|
|
30c05e8b
|
2021-11-01T23:57:00
|
|
[algs] include <new>
|
|
3604f5f2
|
2021-11-01T22:37:42
|
|
[algs] Include <initializer_list>
|
|
8c055699
|
2021-11-01T17:59:17
|
|
[algs] Add hb_swap() ala, and using, std::swap()
Use it in vector.
Use ADL idiom.
|
|
f09d5ed0
|
2021-08-19T13:06:10
|
|
[algs] Remove hb_bitwise_non()
|
|
b94f24ec
|
2021-08-19T00:48:00
|
|
[bit-set-invertible] Implement set algebra
|
|
6afefe1d
|
2021-08-19T00:27:03
|
|
[algs] Remove unnecessary struct tag names
|
|
bf2c87bf
|
2021-07-27T13:10:41
|
|
Add hb_memcpy() that does len=0 check
|
|
cc16b26e
|
2021-02-22T17:55:47
|
|
[constexpr] IntType
See https://github.com/harfbuzz/harfbuzz/pull/2875
|
|
c55bf551
|
2020-06-29T02:04:16
|
|
Remove HB_CONST_FUNC and HB_PURE_FUNC
They are not necessary for inline functions.
|
|
cba9893a
|
2020-06-29T01:55:57
|
|
m[algs] Move roundf() here
|
|
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
|
|
ff7bf881
|
2021-02-20T15:39:29
|
|
m[algs] Fix BEInt -Wnarrowing errors
|
|
e208f804
|
2021-02-20T15:31:27
|
|
Make constexpr BEInt<Type, 2>::operator Type() C++11-compatible
Multiple return values not permitted until C++14
|
|
47f01c07
|
2020-06-29T01:25:35
|
|
m[algs] Move BEInt here
|
|
e1706ffe
|
2020-06-29T00:59:06
|
|
m [algs] Move flags here
|
|
ed04174a
|
2021-02-05T13:36:46
|
|
Whitespace
|
|
921b4e46
|
2021-01-29T20:35:05
|
|
[algs] Add hb_equal()
Use in hb_array_t::lfind()
|
|
881ad720
|
2021-01-21T14:27:45
|
|
[algs] Remove passthru declaration
Let compiler figure it out.
|
|
7c241651
|
2020-11-30T16:38:53
|
|
[algs] Don't forward rvalue twice
Part of https://github.com/harfbuzz/harfbuzz/issues/2293
|
|
b207eab8
|
2020-04-30T11:53:21
|
|
Round-trip OpenType tags through BCP 47
|
|
818f109b
|
2020-04-16T21:25:32
|
|
Use float in avar calculation instead ints and checking their overflows
|
|
9ffa50fe
|
2020-04-16T21:25:32
|
|
Add an appropriate fallback to hb_int_mul_overflows
|
|
96d792ae
|
2020-03-24T14:05:47
|
|
[avar] Prevent mul overflow
Fixes https://crbug.com/oss-fuzz/21350
|
|
b398748d
|
2020-03-04T11:18:19
|
|
[algs] Add hb_clamp
Similar to stl and glsl's clamp
|
|
fa7edf87
|
2019-12-07T22:01:13
|
|
[bsearch] Massage API some more
|
|
70aa5071
|
2019-12-07T22:35:34
|
|
[algs] Adjust return value of hb_ctz(0) to be 32 instead of 0
|
|
48eef272
|
2019-12-06T05:04:11
|
|
[algs/array] Consolidate the last two bsearch implementations!
Yay! Seems to work.
|
|
ed35dea8
|
2019-12-06T04:37:11
|
|
Fourth try... sighs
|
|
34f5cc2c
|
2019-12-06T04:09:33
|
|
Second try at fixing build
|
|
14ce5ab0
|
2019-12-06T03:54:46
|
|
First try at fixing build errors
|
|
2274270c
|
2019-12-06T03:42:21
|
|
[algs] Streamline bsearch some more
|
|
bd55d4b4
|
2019-12-06T03:35:24
|
|
[algs] Streamline bsearch() API more towards hb_array_t::bsearch_impl()
Preparing to merge the two finally!
|
|
670fec23
|
2019-10-10T09:21:08
|
|
Minor, add a zero length tolerant memset, hb_memset
|
|
65690b5a
|
2019-09-03T23:09:47
|
|
[number] Add whole buffer check and test it
|
|
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.
|
|
b5e6805e
|
2019-09-03T15:23:40
|
|
[number] Minor tweak on parser related codes
|
|
a77bb7eb
|
2019-09-03T14:49:14
|
|
Move hb_codepoint_parse to hb_parse_uint
|
|
3bc86fb2
|
2019-08-30T16:39:52
|
|
[algs] Fix hb_inc/dec signature
|
|
2d5643ae
|
2019-08-30T09:51:22
|
|
[algs] Add hb_inc() and hb_dec())
|
|
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...
|
|
c4aa10eb
|
2019-07-02T19:15:03
|
|
Use constexpr to replace passthru_ bools
|
|
2e48fd07
|
2019-07-02T17:55:58
|
|
Sprinkle constexpr around
Being conservative. Also not sure it makes any real difference
in our codebase.
|
|
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
|
|
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.
|
|
24060d3a
|
2019-06-18T12:50:42
|
|
Add hb_bitwise_neg
|
|
7cf91690
|
2019-06-18T12:44:03
|
|
Remove accidentally left cruft
|
|
ff9b9b1c
|
2019-06-10T12:48:25
|
|
Simplify HB_PARTIALIZE impl
+this works on gcc 4.8 as well as default code path.
|
|
451edbd4
|
2019-06-10T12:46:54
|
|
Revert "Test new solution for HB_PARTIALIZE"
This reverts commit a0c4900799c26e4ff34180842a5ff21048fe31a0.
|
|
a0c49007
|
2019-06-10T12:33:23
|
|
Test new solution for HB_PARTIALIZE
Just testing bots. Will finish based on results.
|
|
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
|
|
c4669fda
|
2019-06-09T11:50:36
|
|
[algs] minor
|
|
eff579f7
|
2019-06-07T12:58:09
|
|
Update and use internal qsort everywhere
|
|
973699c4
|
2019-06-07T12:49:06
|
|
Disable clang gcc impersonator
|
|
e4e518f3
|
2019-06-07T12:41:09
|
|
Fix build on gcc 4.8
Fixes https://github.com/harfbuzz/harfbuzz/issues/1724
|
|
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.
|
|
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.
|
|
8278ff7d
|
2019-06-02T00:36:30
|
|
minor
|
|
33d38e79
|
2019-06-02T00:19:57
|
|
Use a unified bsearch (#1741)
A part of #593
|
|
619f5f1e
|
2019-05-31T22:31:35
|
|
Fourth try at building VS bots
Based on https://github.com/harfbuzz/harfbuzz/issues/1730#issuecomment-497151210
|
|
aba3888d
|
2019-05-31T22:11:27
|
|
Third try at fixing VS build
https://github.com/harfbuzz/harfbuzz/issues/1730
|
|
8aaecbb5
|
2019-05-31T21:41:40
|
|
Second VS fix try
https://github.com/harfbuzz/harfbuzz/issues/1730
|
|
5a1b5c0a
|
2019-05-31T21:08:39
|
|
Try fixing VS builds
Hopefully fixes https://github.com/harfbuzz/harfbuzz/issues/1730
|
|
92fde3de
|
2019-05-31T20:16:25
|
|
Whitespace
|
|
65392b73
|
2019-05-22T16:21:21
|
|
[ucdn] Replace UCDN with a new UCD implementation
UCDN was ~120kb of data. New implementatoin is 69kb in default builds,
and 49kb if built with HB_OPTIMIZE_SIZE or __OPTIMIZE_SIZE__. The
latter automatically enabled if built with -Os or -Oz.
There's room to shave off another 10kb or 20kb. That will follow later.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1652
|
|
b7be5931
|
2019-05-16T13:32:56
|
|
Fix msan issue
The fact that HB_AUTO_RETURN will return rvalue-references for rvalues
is very disturbing.
Even apart from that, I'm totally lost re any hb_move needs or
hb_forward'ing to functions/templates where the type is fixed by
explicitly specifying template parameters.
==1==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f6ad65e51e0 at pc 0x0000005da240 bp 0x7ffc104ab670 sp 0x7ffc104ab668
READ of size 4 at 0x7f6ad65e51e0 thread T0
SCARINESS: 55 (4-byte-read-stack-use-after-return)
#0 0x5da23f in bool OT::Coverage::serialize<hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, (void*)0>(hb_serialize_context_t*, hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>) harfbuzz/src/hb-ot-layout-common.hh:1055:16
#1 0x5d88f9 in bool OT::SingleSubstFormat1::serialize<hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, (void*)0>(hb_serialize_context_t*, hb_map_iter_t<hb_map_iter_t<hb_filter_iter_t<OT::Coverage::iter_t, hb_set_t const&, $_7&, (void*)0>, OT::SingleSubstFormat1::subset(hb_subset_context_t*) const::'lambda'(unsigned int), (hb_function_sortedness_t)1, (void*)0>, $_20&, (hb_function_sortedness_t)1, (void*)0>, unsigned int) harfbuzz/src/hb-ot-layout-gsub-table.hh:98:9
|
|
6f51e555
|
2019-05-15T21:41:12
|
|
[algs] Rename hb_bind to hb_partial
Since our API is the invers of what std::bind is, and closer to Python
functools.partial().
|
|
0888e7bc
|
2019-05-15T21:36:42
|
|
[algs] Change hb_bind parameter number to be from one
To match std:;bind, even though our interfaces are very different.
|
|
a06a2368
|
2019-05-15T21:12:22
|
|
[algs] Partialize all operators
|
|
edc69ec9
|
2019-05-15T21:09:56
|
|
[algs] Rewrite bind API
And add a partialization API use example to hb_add()
|
|
16a3540e
|
2019-05-15T20:48:20
|
|
[algs] Add hb_bind0 and hb_bind1
|
|
243a5a6a
|
2019-05-15T19:03:59
|
|
[algs] Remove pair copy constructor
Use default.
|
|
5da8a3a9
|
2019-05-15T17:11:18
|
|
Remove variadic form of hb_min/hb_max
Unused, and why here and not in other functions...
|
|
e5cfe9d5
|
2019-05-15T16:59:36
|
|
Add arithmetic operators
|
|
f7a45851
|
2019-05-15T16:49:35
|
|
Add hb_bitwise_* ops
|
|
d3e1d504
|
2019-05-15T14:25:54
|
|
Add all pair_t comparison operators
|
|
e0315b4a
|
2019-05-10T19:48:02
|
|
[meta] is_integer -> is_integral
|
|
790315e0
|
2019-05-09T15:31:24
|
|
[algs] Implement implicit casting between compatible pair types
|
|
5e3cbed0
|
2019-05-08T16:33:03
|
|
[subset] Switch building of glyph maps in subset plan to use iterators.
|
|
971020ec
|
2019-05-08T16:31:52
|
|
Add sink support for hb_hashmap_t and a reverse call to hb_pair_t.
|
|
98eec3dd
|
2019-05-09T13:15:36
|
|
Add hb_pair_t(,) macro as alternative to hb_pair_t<,>
Just so it's easier to use it in other macros.
|
|
c9b287a8
|
2019-05-09T12:43:57
|
|
Add hb_lidentity(), and rename hb_rvalue() to hb_ridentity()
|
|
4c94bc63
|
2019-05-08T15:57:33
|
|
Move hb_invoke() back to hb-algs.hh
|
|
27b20930
|
2019-05-08T15:32:57
|
|
[map] Return rvalues from keys()/values()
|