Behdad Esfahbod
aba3888d93
Third try at fixing VS build
...
https://github.com/harfbuzz/harfbuzz/issues/1730
2019-05-31 22:49:34 -07:00
Behdad Esfahbod
8aaecbb583
Second VS fix try
...
https://github.com/harfbuzz/harfbuzz/issues/1730
2019-05-31 22:49:34 -07:00
Behdad Esfahbod
5a1b5c0a8b
Try fixing VS builds
...
Hopefully fixes https://github.com/harfbuzz/harfbuzz/issues/1730
2019-05-31 22:49:34 -07:00
Behdad Esfahbod
92fde3dea2
Whitespace
2019-05-31 22:49:34 -07:00
Behdad Esfahbod
65392b734e
[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
2019-05-23 20:34:19 -04:00
Behdad Esfahbod
b7be59311f
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
2019-05-16 13:34:19 -07:00
Behdad Esfahbod
6f51e55524
[algs] Rename hb_bind to hb_partial
...
Since our API is the invers of what std::bind is, and closer to Python
functools.partial().
2019-05-15 21:41:12 -07:00
Behdad Esfahbod
0888e7bc86
[algs] Change hb_bind parameter number to be from one
...
To match std:;bind, even though our interfaces are very different.
2019-05-15 21:36:42 -07:00
Behdad Esfahbod
a06a236891
[algs] Partialize all operators
2019-05-15 21:16:09 -07:00
Behdad Esfahbod
edc69ec935
[algs] Rewrite bind API
...
And add a partialization API use example to hb_add()
2019-05-15 21:09:56 -07:00
Behdad Esfahbod
16a3540ea4
[algs] Add hb_bind0 and hb_bind1
2019-05-15 20:48:20 -07:00
Behdad Esfahbod
243a5a6af2
[algs] Remove pair copy constructor
...
Use default.
2019-05-15 19:04:24 -07:00
Behdad Esfahbod
5da8a3a90d
Remove variadic form of hb_min/hb_max
...
Unused, and why here and not in other functions...
2019-05-15 17:11:18 -07:00
Behdad Esfahbod
e5cfe9d582
Add arithmetic operators
2019-05-15 16:59:36 -07:00
Behdad Esfahbod
f7a458510d
Add hb_bitwise_* ops
2019-05-15 16:53:12 -07:00
Behdad Esfahbod
d3e1d5044f
Add all pair_t comparison operators
2019-05-15 14:34:36 -07:00
Behdad Esfahbod
e0315b4aad
[meta] is_integer -> is_integral
2019-05-10 19:48:02 -07:00
Behdad Esfahbod
790315e0db
[algs] Implement implicit casting between compatible pair types
2019-05-09 15:31:24 -07:00
Garret Rieger
5e3cbed048
[subset] Switch building of glyph maps in subset plan to use iterators.
2019-05-09 14:52:01 -07:00
Garret Rieger
971020eca7
Add sink support for hb_hashmap_t and a reverse call to hb_pair_t.
2019-05-09 14:52:01 -07:00
Behdad Esfahbod
98eec3dd5f
Add hb_pair_t(,) macro as alternative to hb_pair_t<,>
...
Just so it's easier to use it in other macros.
2019-05-09 13:15:36 -07:00
Behdad Esfahbod
c9b287a867
Add hb_lidentity(), and rename hb_rvalue() to hb_ridentity()
2019-05-09 12:43:57 -07:00
Behdad Esfahbod
4c94bc63d9
Move hb_invoke() back to hb-algs.hh
2019-05-08 15:57:33 -07:00
Behdad Esfahbod
27b2093009
[map] Return rvalues from keys()/values()
2019-05-08 15:32:57 -07:00
Behdad Esfahbod
5ceaafa5de
[algs] Fix identity return type
2019-05-08 15:08:33 -07:00
Behdad Esfahbod
4a101d8ffc
Add hb_match
2019-05-08 09:16:33 -07:00
Behdad Esfahbod
26adefd9ea
[algs] Try f[v] in hb_get() as last resort
2019-05-08 09:14:44 -07:00
Behdad Esfahbod
56d2d0294b
[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 &
]
2019-05-07 23:08:49 -07:00
Behdad Esfahbod
e8bd5fc3fa
[meta] Move hb_invoke from algs to meta
2019-05-07 22:29:40 -07:00
Behdad Esfahbod
6fa1f38070
[algs] Accept varargs in hb_min/max
2019-05-07 21:33:26 -07:00
Behdad Esfahbod
1ad07080c3
Rename
2019-05-07 21:00:23 -07:00
Behdad Esfahbod
83e3eabd84
Whitespace
2019-05-07 20:58:43 -07:00
Behdad Esfahbod
2b9402a86a
Use universal references in hb_min/max
2019-05-07 20:55:33 -07:00
Behdad Esfahbod
41248cce0e
Remove MIN/MAX in favor of hb_min/hb_max
2019-05-07 20:54:31 -07:00
Behdad Esfahbod
7654ebe3a5
Whitespace
2019-05-07 16:53:03 -07:00
Behdad Esfahbod
240f57e58d
Rename hb_deref_pointer() to hb_deref()
2019-05-06 23:17:39 -07:00
Behdad Esfahbod
bf22338f49
Remove dead code
2019-05-02 13:51:52 -07:00
Behdad Esfahbod
0268db1196
[map] Use hb_invoke() with pointer-to-method
2019-04-24 10:53:39 -04:00
Behdad Esfahbod
8f79a5750e
[algs] Add more hb_forward<>()'s
2019-04-24 10:32:49 -04:00
Behdad Esfahbod
25dd88efc6
Err, fix hb_invoke() variadic
2019-04-22 17:47:07 -04:00
Behdad Esfahbod
c862a532df
Add variadic arguments to hb_invoke()
2019-04-22 17:32:19 -04:00
Behdad Esfahbod
c67a0d581f
Add HB_RETURN
2019-04-17 10:29:10 -04:00
Behdad Esfahbod
5b33427f2c
Rename HB_AUTO_RETURN_EXPR to HB_AUTO_RETURN
2019-04-16 18:28:17 -04:00
Behdad Esfahbod
da293b0e59
Use HB_AUTO_RETURN_EXPR in hb_min/max
2019-04-16 18:27:25 -04:00
Behdad Esfahbod
0241a40f2a
Use auto return type for hb_first/hb_second
2019-04-16 18:26:30 -04:00
Behdad Esfahbod
fe30fcd228
Use hb_deref_pointer() to reduce number of overloads
2019-04-16 17:34:06 -04:00
Behdad Esfahbod
c918a6706f
Properly prioritize hb_hash()
2019-04-16 17:28:18 -04:00
Behdad Esfahbod
75fd845a4a
Move around
2019-04-16 17:22:29 -04:00
Behdad Esfahbod
973717175d
Fix priorities
2019-04-16 16:50:07 -04:00
Behdad Esfahbod
54ece299bc
Use type aliasing for meta-functions, ie. those returning a type
2019-04-16 16:45:53 -04:00
Behdad Esfahbod
4fc2d2d724
[meta] Flesh out hb_invoke()
2019-04-16 11:24:42 -04:00
Behdad Esfahbod
e03d9395aa
Comment
2019-04-16 11:20:16 -04:00
Behdad Esfahbod
b8e763fd71
[meta] Add hb_invoke()
2019-04-16 10:54:24 -04:00
Behdad Esfahbod
a3fcb9a370
[meta] Add HB_AUTO_RETURN_EXPR, HB_VOID_RETURN_EXPR, hb_priority, hb_has(), hb_get()
...
The first three based on range-v3.
2019-04-16 10:45:57 -04:00
Behdad Esfahbod
02d864aa26
Add HB_FUNCOBJ()
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1651
2019-04-15 15:39:30 -04:00
Behdad Esfahbod
38b1d0b9b2
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
2019-04-15 12:45:21 -04:00
Behdad Esfahbod
ecabdffc61
[algs] Add hb_min() and hb_max()
2019-04-03 16:06:34 -07:00
Behdad Esfahbod
b189bbc48f
Implement hashing of objects
...
Should be improved for hb_bytes_t.
2019-03-30 19:41:48 -07:00
Behdad Esfahbod
d6b28057a5
Fix hb_hash(pointer)
2019-03-30 19:31:51 -07:00
Behdad Esfahbod
7fd8228326
[serialize] Towards maintaining hashmap
2019-03-30 19:16:20 -07:00
Behdad Esfahbod
4b7f4dbc0c
Add hb_deref_pointer()
2019-03-30 13:48:32 -07:00
Behdad Esfahbod
e70ccbe9ed
Fix pair signature
...
Oh well. Again, who does fully understand what is right???
2019-03-29 21:45:49 -07:00
Behdad Esfahbod
bdd5a9c48d
Add hb_hash()
...
I don't like the hb_remove_reference() hack, but necessary.
2019-03-28 21:58:07 -07:00
Behdad Esfahbod
0d7af5fb02
[algs] Use universal references for hb_pair()
...
Such that it carries lvalues inside.
2019-02-14 19:37:57 -08:00
Behdad Esfahbod
7d2376de33
Merge branch 'master' into iter
2019-02-13 22:13:37 -08:00
Behdad Esfahbod
e75b22039f
Move hb_addressof() to hb-meta.hh
2019-01-28 21:26:23 -05:00
Behdad Esfahbod
71157a4520
[meta] Remove _ft struct names
...
Using decltype() instead.
2019-01-28 21:20:12 -05:00
Behdad Esfahbod
9103bd056f
[pair] Use decltype
2019-01-28 21:16:51 -05:00
Behdad Esfahbod
d592bd16cd
Try fixing MSVC build
2019-01-28 13:41:40 -05:00
Behdad Esfahbod
778c96b8d7
[iter] Fix hb_iter()
2019-01-27 00:50:54 +01:00
Behdad Esfahbod
fbab07f9b3
[iter] Add hb_bool() and make hb_filter default to it for predicate
2019-01-27 00:44:45 +01:00
Behdad Esfahbod
313d63e240
[meta] Back to using _ft suffix for function-object types
...
Seprate namespace, cleaner, more clear.
2019-01-26 22:58:26 +01:00
Behdad Esfahbod
5adb113baf
[meta] Mark function-objects as const
2019-01-26 22:15:59 +01:00
Behdad Esfahbod
090fe56dc6
Merge branch 'master' into iter
2019-01-25 16:06:52 +01:00
Behdad Esfahbod
420d8ac350
[algs] Add hb_iter()
...
Makes it nicer in pipelines.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
83cecd80d9
[iter] Default projection to identity
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a699c6b17c
[algs] Add hb_identity
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
463cfb426f
Fix unused-variable warnings
...
inline variables are not C++11, so mark them unused...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
528ea66f24
[algs] Fix hb_first() / hb_second()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7cedf7f64c
Change hb_first() and hb_second() to function objects
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3290c181c1
[algs] Whitespace
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6e3ad650d1
Rename hb-dsalgs to hb-algs
2019-01-20 20:12:12 -05:00