|
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()
|
|
5ceaafa5
|
2019-05-08T14:59:25
|
|
[algs] Fix identity return type
|
|
4a101d8f
|
2019-05-08T09:16:33
|
|
Add hb_match
|
|
26adefd9
|
2019-05-08T09:14:44
|
|
[algs] Try f[v] in hb_get() as last resort
|
|
56d2d029
|
2019-05-07T23:08:49
|
|
[algs] Sprinkle hb_min/max with hb-forward salad
Let's see if fixes MSVC fail. Though, the error doesn't make sense to me.
hb-blob.cc
c:\projects\harfbuzz\src\hb-algs.hh(166): error C2440: 'return': cannot convert from 'unsigned int' to 'unsigned int &&' [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
c:\projects\harfbuzz\src\hb-algs.hh(166): note: You cannot bind an lvalue to an rvalue reference
c:\projects\harfbuzz\src\hb-algs.hh(174): note: see reference to function template instantiation 'T &&<unnamed-type-hb_min>::impl<T,unsigned int&>(T &&,T2) const' being compiled
with
[
T=unsigned int,
T2=unsigned int &
]
|
|
e8bd5fc3
|
2019-05-07T22:29:40
|
|
[meta] Move hb_invoke from algs to meta
|
|
6fa1f380
|
2019-05-07T21:33:26
|
|
[algs] Accept varargs in hb_min/max
|
|
1ad07080
|
2019-05-07T21:00:23
|
|
Rename
|
|
83e3eabd
|
2019-05-07T20:58:43
|
|
Whitespace
|
|
2b9402a8
|
2019-05-07T20:55:33
|
|
Use universal references in hb_min/max
|
|
41248cce
|
2019-05-07T20:54:31
|
|
Remove MIN/MAX in favor of hb_min/hb_max
|
|
7654ebe3
|
2019-05-07T16:53:03
|
|
Whitespace
|
|
240f57e5
|
2019-05-06T23:17:39
|
|
Rename hb_deref_pointer() to hb_deref()
|
|
bf22338f
|
2019-05-02T13:51:52
|
|
Remove dead code
|
|
0268db11
|
2019-04-24T10:43:40
|
|
[map] Use hb_invoke() with pointer-to-method
|
|
8f79a575
|
2019-04-24T10:32:49
|
|
[algs] Add more hb_forward<>()'s
|
|
25dd88ef
|
2019-04-22T17:45:23
|
|
Err, fix hb_invoke() variadic
|
|
c862a532
|
2019-04-22T17:32:19
|
|
Add variadic arguments to hb_invoke()
|
|
c67a0d58
|
2019-04-17T10:20:02
|
|
Add HB_RETURN
|
|
5b33427f
|
2019-04-16T18:28:17
|
|
Rename HB_AUTO_RETURN_EXPR to HB_AUTO_RETURN
|
|
da293b0e
|
2019-04-16T18:27:25
|
|
Use HB_AUTO_RETURN_EXPR in hb_min/max
|
|
0241a40f
|
2019-04-16T18:26:30
|
|
Use auto return type for hb_first/hb_second
|
|
fe30fcd2
|
2019-04-16T17:34:06
|
|
Use hb_deref_pointer() to reduce number of overloads
|
|
c918a670
|
2019-04-16T17:28:18
|
|
Properly prioritize hb_hash()
|
|
75fd845a
|
2019-04-16T17:22:29
|
|
Move around
|
|
97371717
|
2019-04-16T16:50:07
|
|
Fix priorities
|
|
54ece299
|
2019-04-16T16:45:53
|
|
Use type aliasing for meta-functions, ie. those returning a type
|
|
4fc2d2d7
|
2019-04-16T11:24:42
|
|
[meta] Flesh out hb_invoke()
|
|
e03d9395
|
2019-04-16T11:20:16
|
|
Comment
|
|
b8e763fd
|
2019-04-16T10:50:22
|
|
[meta] Add hb_invoke()
|
|
a3fcb9a3
|
2019-04-16T10:45:20
|
|
[meta] Add HB_AUTO_RETURN_EXPR, HB_VOID_RETURN_EXPR, hb_priority, hb_has(), hb_get()
The first three based on range-v3.
|
|
02d864aa
|
2019-04-15T15:39:03
|
|
Add HB_FUNCOBJ()
Fixes https://github.com/harfbuzz/harfbuzz/issues/1651
|
|
38b1d0b9
|
2019-04-15T12:44:31
|
|
Move static const to post-struct for a function object
Just sending this to bots to see if all happy, then turn it into macro and
apply everywhere.
Part of https://github.com/harfbuzz/harfbuzz/issues/1651
|
|
ecabdffc
|
2019-04-03T16:06:34
|
|
[algs] Add hb_min() and hb_max()
|
|
b189bbc4
|
2019-03-30T19:41:48
|
|
Implement hashing of objects
Should be improved for hb_bytes_t.
|
|
d6b28057
|
2019-03-30T19:31:51
|
|
Fix hb_hash(pointer)
|
|
7fd82283
|
2019-03-30T19:16:20
|
|
[serialize] Towards maintaining hashmap
|