|
5402fe24
|
2025-03-12T23:06:11
|
|
Merge branch 'main' into HVF
|
|
4807a021
|
2025-03-12T18:27:27
|
|
[atomic] Kill hb_atomic_ptr_t<T>
Use hb_atomic_t<T *> instead.
|
|
829d1eda
|
2025-03-12T18:19:04
|
|
[atomic] Clean up atomic_ptr_t
|
|
a6ba9603
|
2025-01-20T18:00:23
|
|
[hvgl] Move Align to proper place
|
|
89c94925
|
2025-01-17T23:30:56
|
|
[hvgl] Implement PartShape
Just struct and sanitize.
|
|
60db1427
|
2023-07-24T20:49:32
|
|
[layout] Remove unused "max-size" cruft
|
|
8eb7889f
|
2023-07-24T20:31:12
|
|
Add max-size to static-size objects
|
|
2006d321
|
2023-07-07T17:07:11
|
|
[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size
Unfortunately this doesn't speed up NotoNastaliq or Gulzar as I was
hoping for. Their GSUB tables are not large enough for this to kick
in...
|
|
7a85663c
|
2023-07-07T19:21:18
|
|
Revert "[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size"
This reverts commit 10f8556c73f3cf231c6b5a900a6a1903f9516f90.
This was, unfortunately, wrong :(.
|
|
10f8556c
|
2023-07-07T17:07:11
|
|
[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size
|
|
68b78914
|
2023-07-07T17:07:11
|
|
[sanitize] Add "fastpath" for ArrayOfOffset16To<> objects with max size
Unfortunately this doesn't speed up NotoNastaliq or Gulzar as I was
hoping for. Their GSUB tables are not large enough for this to kick
in...
|
|
7a356682
|
2023-06-30T10:50:25
|
|
Minor variable fix
|
|
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
|
|
35f46e74
|
2023-01-04T17:12:08
|
|
[map] Add hb_map_keys() and hb_map_values()
|
|
a0b46f3f
|
2022-12-31T12:15:14
|
|
[machinery] Refactor shared code into a macro
|
|
2c0ab34d
|
2022-12-24T11:37:59
|
|
[paint-extents] Lazy-load draw-funcs
|
|
e9f964c0
|
2022-11-24T13:38:53
|
|
[ot-face] Declare more tables as core
|
|
5bc27a12
|
2022-11-24T13:30:12
|
|
[machinery] Comment
|
|
b68f9f3c
|
2022-11-18T21:35:35
|
|
[machinery] Adjust comment
|
|
a47ba1dc
|
2022-11-18T21:14:07
|
|
[lazy-pointer] Hide instance
|
|
86d1e22d
|
2022-08-03T12:43:28
|
|
[atomic-ptr] Rename get
|
|
c1c78ade
|
2022-06-28T13:19:12
|
|
[font] When font changes, drop font shaper data
https://github.com/harfbuzz/harfbuzz/issues/3683#issuecomment-1168016509
|
|
2a430790
|
2022-02-15T17:33:52
|
|
[machinery] Add "core table" machinery
To be used in subsequent commit; or tried anyway.
|
|
68937238
|
2022-02-11T13:16:25
|
|
[machinery] Allow using lazy-loader with void*
Fixes https://github.com/harfbuzz/harfbuzz/issues/3427
|
|
ac1bb3e3
|
2022-01-20T11:47:17
|
|
[machinery] Move accelerators to constructor/destructor
|
|
e062376e
|
2022-01-19T17:09:34
|
|
[machinery] Make accelerator lazy-loader call Xinit/Xfini
Instead of init/fini. To isolate those functions. To be turned into
constructor/destructors, ideally one per commit (after some SFINAE
foo.)
|
|
2337f0d0
|
2021-07-08T10:58:50
|
|
Internally use hb_malloc/.../hb_free instead of malloc/.../free
Redefining those stock names as macros was conflicting with gcc 10
headers.
Fixes https://github.com/harfbuzz/harfbuzz/issues/3044
|
|
f0947717
|
2020-06-29T01:53:21
|
|
m[machinery] Move HB_VAR_ARRAY here
|
|
2dda6dd7
|
2020-04-20T14:12:45
|
|
minor, tweak spacing
turn 8 spaces to tab, add space before Null/Crap
|
|
858b6279
|
2019-12-10T13:18:32
|
|
[machinery] Remove CastR<>()
|
|
b84ceb2f
|
2019-12-10T13:02:48
|
|
[machinery] Remove CastP
|
|
85574ec2
|
2019-12-10T12:52:32
|
|
[machinery] Minor
|
|
35218c48
|
2019-10-31T13:19:44
|
|
Minor
Allow empty HB_VAR_ARRAY definition. Though, doesn't compile with any
compiler I know of.
|
|
0e294c45
|
2019-09-06T16:54:27
|
|
Rename VAR to HB_VAR_ARRAY
|
|
a0b4ac4d
|
2019-08-24T17:57:14
|
|
Turn 8 spaces to tab across the project
According to the current code style of the project
|
|
17f0cfa7
|
2019-03-31T21:34:19
|
|
Move BEInt to hb.hh
I knows...
|
|
a7c63cd8
|
2019-03-30T14:59:40
|
|
Split sanitize and dispatch into their own files
|
|
be66b575
|
2019-03-30T14:53:54
|
|
Move serializer to hb-serialize.hh
|
|
bb22462f
|
2019-03-30T14:46:54
|
|
Whitespace
|
|
4c38a9f6
|
2019-03-29T20:23:07
|
|
Remove hb_assign()
Not needed anymore. We just use operator= now.
|
|
5bbe78a0
|
2019-03-14T16:49:42
|
|
Allow zero length ranges in sanitization (#1617)
Fixes fvar table sanitization where there are no named instance
by allowing zero length ranges starting from Null() address.
Fixes #1607
|
|
4fd02f6e
|
2019-03-29T17:57:59
|
|
Remove unused line
|
|
9a5b15dc
|
2019-03-29T17:57:24
|
|
[C++11] Replace BEInt.set() with operator=
|
|
3f36c89f
|
2019-03-29T15:22:46
|
|
Inline explicit_operator macro
Now that we require C++11, no need to macro.
|
|
8aaab78e
|
2019-03-14T16:49:42
|
|
Allow zero length ranges in sanitization (#1617)
Fixes fvar table sanitization where there are no named instance
by allowing zero length ranges starting from Null() address.
Fixes #1607
|
|
f3980975
|
2019-01-25T16:08:25
|
|
More static constexpr
|
|
447323b8
|
2019-01-22T12:45:40
|
|
Better fix for -Wcast-align errors
|
|
70a52d6b
|
2019-01-22T12:15:23
|
|
Convert all other enum class consts to static constexpr
Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
|
|
c986ca15
|
2019-01-15T13:58:19
|
|
Improve overflow avoidance
Better fix for 480406cd3ef9e5ab8476ddfa04498bf23906c508
This way we behave the same on 32bit and 64bit archs.
|
|
480406cd
|
2019-01-14T15:27:34
|
|
Fix assertion on address overflow
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=917031
|
|
f6d5f1e9
|
2018-12-21T00:23:34
|
|
[iter] Add empty test
|
|
b80b97b5
|
2018-12-21T00:08:05
|
|
Revert "Remove unused hb-iter.hh"
This reverts commit 969ff3c7aadbe721cdd414488eb170433f10d00c.
|
|
e6ebc9b6
|
2018-12-20T23:13:36
|
|
Remove unused typedef
|
|
87f7c83f
|
2018-12-20T15:54:17
|
|
[serializer] Add operator <<
Not sure if we are going to use it. But might incentivize us to.
|
|
5b70074e
|
2018-12-20T15:38:59
|
|
Add hb_assign(obj, value)
|
|
4220b7bd
|
2018-12-20T11:48:45
|
|
Fix code on big-endian gcc / clang
Ouch! We need a bigendian bot...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1498
|
|
5000a59a
|
2018-12-19T21:07:53
|
|
[saitnize] Minor
|
|
a6287050
|
2018-12-19T21:05:00
|
|
[sanitize] Use hb_static_size instead of ::static_size
https://github.com/harfbuzz/harfbuzz/issues/1496#issuecomment-448818112
|
|
9aebfb41
|
2018-12-18T13:22:17
|
|
[serialize] Streamline error propagation
|
|
969ff3c7
|
2018-12-17T22:43:00
|
|
Remove unused hb-iter.hh
The ideas there are all part of hb-array.hh now. To be determined how we
want to use generic iterator patterns.
|
|
e4120085
|
2018-12-17T21:31:01
|
|
Remove redundant void from C++ sources (#1486)
|
|
92680361
|
2018-12-16T23:38:51
|
|
[arrays] Move Supplier<> to hb-array.hh
|
|
2a3fa3f8
|
2018-12-16T23:33:03
|
|
[arrays] Remove unnecessary constructor from Supplier<>
Looks like operator hb_array_t<> from vector works here. :)
|
|
507cac49
|
2018-12-16T23:31:19
|
|
[arrays] Start moving Supplier<> to hb_array_t<>
|
|
1e2c9812
|
2018-12-16T22:30:44
|
|
[arrays] Remove unused stride from Supplier
|
|
dcfa4a8d
|
2018-12-16T20:40:07
|
|
[array] Remove custom hb_bytes_t implementation
|
|
5a552f75
|
2018-12-16T20:07:44
|
|
[array] Move hb_array_t and related types to hb-array.hh
|
|
01d06e34
|
2018-12-16T14:27:43
|
|
Minor change to explicit_operator aesthetics
|
|
b2ebaa9a
|
2018-12-16T22:38:10
|
|
Remove redundant 'inline' from methods (#1483)
|
|
6e33a395
|
2018-12-13T16:40:01
|
|
Minor
|
|
c78e4784
|
2018-12-12T09:50:18
|
|
[dispatch] Minor
|
|
41d1a1c1
|
2018-12-11T22:48:27
|
|
[subset] Minor
|
|
2aba2c6c
|
2018-12-11T21:18:47
|
|
[serialize] Break down assert
|
|
fb059082
|
2018-11-30T20:45:40
|
|
Revert ugly fixes
Now that we have 6daf45e0, revert cryptic hacks...
This reverts commit abd81ed4f5cbc5a94171747909bc6b77551cb929.
This reverts commit 9c6921c08c905a0cf45ba0182134e6ff910fac51.
This reverts commit d39760cabfe4007cefdfc45231e85e93fababac2.
This reverts commit fedd8e6c176dea85194693399e50243eb1c117c4.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
|
|
abd81ed4
|
2018-11-30T11:51:26
|
|
Umm. Cryptic, yes
In file included from hb-face.cc:35:
hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_compiles_assertion_on_line_388() const':
hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>]
hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in>
hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_instance_assertion_on_line_388() const':
hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>]
hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in>
hb-face.cc: In function 'hb_blob_t* _hb_face_builder_data_reference_blob(hb_face_builder_data_t*)':
hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:650: note: candidate 2: operator[](T*, int) <built-in>
hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:650: note: candidate 2: operator[](const T*, int) <built-in>
hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:651: note: candidate 2: operator[](T*, int) <built-in>
hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
hb-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u]
hb-face.cc:651: note: candidate 2: operator[](const T*, int) <built-in>
|
|
e7bd29ea
|
2018-11-29T23:47:20
|
|
Limit __builtin_bswap16 to GCC >= 5 as it was implemented on 4.8
|
|
861bc753
|
2018-11-29T14:34:44
|
|
[vector] Make pointer cast explicit
Too bad this doesn't help MSVC 2008 build, as explicit operators are
C++11.
|
|
987f4187
|
2018-11-27T17:40:32
|
|
Merge pull request #1398 from Adenilson/bigInt01
Optimize harfbuzz big integer conversions
|
|
4e2a03b6
|
2018-11-27T17:40:09
|
|
Comment
|
|
4a719a7f
|
2018-11-20T14:41:19
|
|
Optimize harfbuzz big integer conversions
Profiling showed that type conversions were adding considerable cycles in time
spent doing text shaping.
The idea is to optimize it using native processor instructions to help Blink
layout performance.
Doing further investigation revelead that compilers may not use the
proper instruction on ARM 32bits builds (i.e. REV16).
One way to insure that the generated ASM was ideal for both gcc/clang
was using __builtin_bswap16.
Added bonus is that we no longer need to test for CPU architecture.
|
|
93269129
|
2018-11-25T00:27:23
|
|
[kerx] Fix crash
|
|
6ee40104
|
2018-11-25T00:21:13
|
|
Simplify sanitize set_object() / fix bots
|
|
1e899422
|
2018-11-24T23:38:06
|
|
Add hb_sanitize_with_object_t
Context manager.
|
|
b3c5affc
|
2018-11-24T23:34:34
|
|
Simplify sanitize set_object()
|
|
9eeebd8d
|
2018-11-24T22:16:47
|
|
Revert "[sanitize] Remove now-unused set_object() machinery"
This reverts commit bbdb6edb3e1cea4c5b7076c4f6b3e6998ae36dae.
|
|
bbdb6edb
|
2018-11-24T17:15:38
|
|
[sanitize] Remove now-unused set_object() machinery
|
|
a9fe787a
|
2018-11-22T22:12:36
|
|
[sanitizer] Add reset_object(), make set_object() do bounds-check
Affects morx/kerx run-time only currently. Will adjust their sanitize next.
|
|
3b9fd176
|
2018-11-22T01:18:55
|
|
Disallow taking Null() of unbounded structs
Not sure I've marked all such structs. To be done as we discover.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1300
|
|
7dd945a8
|
2018-11-22T01:05:02
|
|
One more time..
|
|
d062ad10
|
2018-11-22T00:39:14
|
|
Fix bots happy again, hopefully
So, our fallback static_assert cannot be had more than once per line
of source.
|
|
fb10c021
|
2018-11-22T00:21:49
|
|
Revert alignof() == 1 check
Bots not happy with using "this" inside assertion...
This reverts 2656644887e77a9d814bb12374af3c26b42fd935
|
|
8d778877
|
2018-11-21T23:46:09
|
|
..
|
|
8cfeed99
|
2018-11-21T23:42:31
|
|
Minor
|
|
e5d954a2
|
2018-11-21T23:30:50
|
|
Minor
|
|
e987059c
|
2018-11-21T23:25:06
|
|
Minor
|
|
a2b6d308
|
2018-11-21T23:23:49
|
|
Remove DEFINE_SIZE_ARRAY2
|
|
26566448
|
2018-11-21T23:23:21
|
|
Check alignof() structs are 1
|
|
6321fdf7
|
2018-11-21T23:19:00
|
|
Whitespace
|
|
cfb9771a
|
2018-11-16T03:24:22
|
|
[coretext] Try to fix
|
|
ce5da0f3
|
2018-11-16T02:29:13
|
|
[shaper] Rewrite shaper data code to be more template-driven than macro-driven
|