Behdad Esfahbod
05867d9f53
[meta] Add hb_int_max()
2019-05-09 11:31:13 -07:00
Behdad Esfahbod
71537f93e0
[iota] end -> end_ to not shadow
2019-05-09 11:31:13 -07:00
Behdad Esfahbod
3476445420
Remove unnecessary template keyword
...
Should fix MSVC.
2019-05-08 21:14:01 -07:00
Behdad Esfahbod
e2a51ff726
Remove unused var
2019-05-08 16:41:39 -07:00
Behdad Esfahbod
e8b45c1933
[array] Add .copy()
2019-05-08 16:37:38 -07:00
Behdad Esfahbod
afb013f350
Fix msan issue
...
hb_identity returns rvalue-reference if input is rvalue. That, can leak
the reference and cause in bad access to temporaries after they are
destructed. This is unfortunately unfixable given the desired
transparency of hb_identity :(. Just don't use it with hb_map().
2019-05-08 16:16:43 -07:00
Behdad Esfahbod
4c94bc63d9
Move hb_invoke() back to hb-algs.hh
2019-05-08 15:57:33 -07:00
Behdad Esfahbod
b710176ce2
[hdmx] Touch up
2019-05-08 15:47:24 -07:00
Garret Rieger
e8ef0e627c
[subset] WIP convert hdmx subsetting to use iterators.
2019-05-08 15:47:24 -07:00
Garret Rieger
d5decf9bf7
[subset] Move hdmx to subset2.
2019-05-08 15:47:24 -07:00
Behdad Esfahbod
27b2093009
[map] Return rvalues from keys()/values()
2019-05-08 15:32:57 -07:00
Behdad Esfahbod
372c5b97bf
[map] Fix bots
...
Older compilers don't like calling iter() from return-type decltype()
../src/hb-map.hh:226:12: error: cannot call member function 'decltype ((((+ hb_array(((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::items, (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask ? (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask + 1) : 0))) | hb_filter((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: is_real))) | hb_map((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: get_pair)))) hb_hashmap_t<K, V, kINVALID, vINVALID>::iter() const [with K = const hb_serialize_context_t::object_t*; V = unsigned int; K kINVALID = 0u; V vINVALID = 0u; decltype ((((+ hb_array(((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::items, (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask ? (((const hb_hashmap_t<K, V, kINVALID, vINVALID>*)this)->hb_hashmap_t<K, V, kINVALID, vINVALID>::mask + 1) : 0))) | hb_filter((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: is_real))) | hb_map((& hb_hashmap_t<K, V, kINVALID, vINVALID>::item_t:: get_pair)))) = hb_map_iter_t<hb_filter_iter_t<hb_array_t<hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t>, bool (hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t::*)() const, const<anonymous struct>&, 0u>, hb_pair_t<const hb_serialize_context_t::object_t*, unsigned int> (hb_hashmap_t<const hb_serialize_context_t::object_t*, unsigned int, 0u, 0u>::item_t::*)() const, 0u>]' without object
+ iter()
^
../src/hb-meta.hh:58:41: note: in definition of macro 'HB_AUTO_RETURN'
#define HB_AUTO_RETURN(E) -> decltype ((E)) { return (E); }
^
2019-05-08 15:28:39 -07:00
Behdad Esfahbod
a304827184
[map] Add .values() iterator
2019-05-08 15:08:33 -07:00
Behdad Esfahbod
3c69505b3a
[map] Fix iter
2019-05-08 15:08:33 -07:00
Behdad Esfahbod
5ceaafa5de
[algs] Fix identity return type
2019-05-08 15:08:33 -07:00
Behdad Esfahbod
f5705d7656
Whitespace
2019-05-08 15:08:33 -07:00
Behdad Esfahbod
a17f0fa3a1
[meta] Capture rvalue-references in is_reference / remove_reference
2019-05-08 15:08:33 -07:00
Behdad Esfahbod
7166bd5634
Minor
2019-05-08 15:08:33 -07:00
rsheeter
b827181ba1
[map] tweak test-iter.cc
2019-05-08 15:08:33 -07:00
rsheeter
492af0f1bf
[map] add keys()
2019-05-08 15:08:33 -07:00
rsheeter
ba60512813
[map] add a test for iteration
2019-05-08 15:08:33 -07:00
rsheeter
183b8094b5
[map] add iteration
2019-05-08 15:08:33 -07:00
Michiharu Ariza
02ae2591d9
initialize return param subr_num in popSubrNum
...
also snake_cased popSubrtNum and other surrounding function names
2019-05-08 13:44:03 -07:00
Behdad Esfahbod
503748d8a8
[name] Sanitize records for reals
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14641
2019-05-08 12:45:02 -07:00
Behdad Esfahbod
5875d775e1
[iter] Rename hb_iter_t() to hb_iter_type<> and add hb_item_type<>
2019-05-08 12:28:46 -07:00
Behdad Esfahbod
bad1606639
[map] Make .has() optionally return value
2019-05-08 12:11:52 -07:00
Behdad Esfahbod
750d5af48e
Make compiler happy with -Og
2019-05-08 12:10:00 -07:00
Behdad Esfahbod
cdb61eb043
[iter] Accept pointer in hb_iter() and hb_iter_t()
2019-05-08 11:00:18 -07:00
Behdad Esfahbod
c93eeba9b2
[iter] Accept pointer in hb_map()
2019-05-08 10:56:09 -07:00
Behdad Esfahbod
4c9e0c37a3
[serialize] LangSys subset->copy
2019-05-08 10:40:39 -07:00
Behdad Esfahbod
50dc3e7d9f
Add hb_iota()
2019-05-08 10:35:02 -07:00
Behdad Esfahbod
aa4ac13f0b
[iter] Actually fix previous commit
...
The iter objects shouldn't not be const. D'oh.
2019-05-08 10:03:10 -07:00
Behdad Esfahbod
a66598e030
[iter] For ref-qualified variants
2019-05-08 10:03:10 -07:00
Behdad Esfahbod
8479eb5955
[iter] Fix hb_sink() to accept rvalue
2019-05-08 09:48:55 -07:00
Behdad Esfahbod
710d459aca
[iter] Default predicates to hb_identity instead of hb_bool
...
The bool conversion happens after predicate is called automatically.
2019-05-08 09:33:09 -07:00
Behdad Esfahbod
fe14a4000a
Adjust hb_all/any/none
2019-05-08 09:32:19 -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
0601a19d38
Fix a few more double-pomotion errors
2019-05-08 07:47:36 -07:00
Behdad Esfahbod
2ba984fcbb
Fix signed comparison on 32bit
2019-05-07 23:28:22 -07:00
Behdad Esfahbod
dfc5780245
Fix more double-promotion errors
...
WHy do only some of the clang bots catch this I have no idea :(.
2019-05-07 23:26:09 -07:00
Behdad Esfahbod
c2c9d204fa
Fix double-promotion warnings
...
Make it an error.
2019-05-07 23:13:38 -07:00
Behdad Esfahbod
2c7093ed01
More tests
2019-05-07 23:10:59 -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
bdbfdc92b5
[iter] Add value and projection to hb_all/any/none
...
Allows for eg, checking all values equal 2: hb_all (it, 2).
2019-05-07 23:02:44 -07:00
Behdad Esfahbod
cf61acb9ea
[iter] Accept rvalues to hb_enumerate()
2019-05-07 22:45:01 -07:00
Behdad Esfahbod
e8bd5fc3fa
[meta] Move hb_invoke from algs to meta
2019-05-07 22:29:40 -07:00
Behdad Esfahbod
af571dbffc
[meta] Replace most hb_enable_if with hb_requires
...
They do absolutely same thing. hb_requires is to encode constraints,
whereas hb_enable_if is for more conditional enabling.
2019-05-07 21:39:20 -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
5c0f62adc9
[serializer] Accept pointer & reference in more methods
2019-05-07 17:25:58 -07:00
Behdad Esfahbod
839618de3b
[serializer] Minor
2019-05-07 17:21:27 -07:00
Behdad Esfahbod
035b818e34
[meta] Fix addressof()
2019-05-07 17:21:18 -07:00
Behdad Esfahbod
7654ebe3a5
Whitespace
2019-05-07 16:53:03 -07:00
Behdad Esfahbod
95426ea983
Add comment
2019-05-07 15:56:51 -07:00
Behdad Esfahbod
e33ad25222
[serialize] FeatureVariations subset->copy
2019-05-07 15:46:24 -07:00
Behdad Esfahbod
fa8c4ba811
Minor
2019-05-07 14:26:03 -07:00
Behdad Esfahbod
c09d6c58e9
[iter] Require lvalue in operators that return reference
2019-05-07 14:09:00 -07:00
Behdad Esfahbod
52f6c04c1e
Minor
2019-05-07 13:45:48 -07:00
Behdad Esfahbod
7c037bd2be
[name] Clean up some more
2019-05-07 13:37:43 -07:00
Behdad Esfahbod
f982b9d9f8
[name] Clean up serialize() API
2019-05-07 13:29:01 -07:00
Behdad Esfahbod
59ee61fddc
[name] Use iterators more
2019-05-07 13:26:15 -07:00
Behdad Esfahbod
2eb7e0e0e9
[serialize] Minor
2019-05-07 12:45:38 -07:00
Behdad Esfahbod
1c81cff2d3
Fix signed-comparison error on 32bit
2019-05-07 11:51:10 -07:00
Behdad Esfahbod
938de31575
Comment
2019-05-07 11:47:02 -07:00
Behdad Esfahbod
9b05db33b5
[ragel] Regenerate ragel-generated files using ragel 7.0.0.11 May 2018
2019-05-07 11:39:44 -07:00
Behdad Esfahbod
521262b236
[subset] Add TODO
2019-05-07 11:08:08 -07:00
Behdad Esfahbod
e6a622b5b2
[serialize] Enable bias assertion
2019-05-07 11:06:43 -07:00
Behdad Esfahbod
530ddbbc32
[serialize] Use range-based loop
2019-05-07 11:05:51 -07:00
Behdad Esfahbod
0987c4204f
[name] Remove dead code
2019-05-07 11:01:02 -07:00
Behdad Esfahbod
5ac4ab6868
[subset] fix for name table serializing with new serializer machinery
2019-05-07 10:59:03 -07:00
Behdad Esfahbod
c548fcedc4
[WIP] [name] Port to fancy serializer machinery
2019-05-07 10:59:03 -07:00
Behdad Esfahbod
fa2d97161f
Remove use of deprecated implicit copy/move assignment operators
...
By removing custom copy constructor.
2019-05-07 00:36:36 -07:00
Behdad Esfahbod
45f5e56236
Warn on -Wdeprecated
2019-05-07 00:36:36 -07:00
Behdad Esfahbod
8903040fcd
Actually make it work
2019-05-07 00:13:11 -07:00
Behdad Esfahbod
025eaa3c81
[iter] Make filter/map copyable
2019-05-07 00:05:37 -07:00
Behdad Esfahbod
03a68165d8
[meta] Add hb_reference_wrapper<>
...
Functionality kinda superset of std:: counterpart.
2019-05-07 00:05:31 -07:00
Behdad Esfahbod
0bf86d9c5d
Whitespace
2019-05-06 23:39:26 -07:00
Behdad Esfahbod
72eb91deb9
Add hb_ref()
...
Unused.
2019-05-06 23:39:13 -07:00
Behdad Esfahbod
240f57e58d
Rename hb_deref_pointer() to hb_deref()
2019-05-06 23:17:39 -07:00
Behdad Esfahbod
0b1ca5a13b
[iter] Adjust hb_filter
2019-05-06 23:04:32 -07:00
Behdad Esfahbod
4c2fd05ca5
[iter] Implement range-based for loops
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1648
2019-05-06 19:57:35 -07:00
Ebrahim Byagowi
e261dc3a40
Ignore -Wc++11-compat as we require C++11 actually
...
pollutes gcc bots logs https://circleci.com/gh/harfbuzz/harfbuzz/85395
2019-05-07 01:24:55 +04:30
Behdad Esfahbod
9f9890e9e8
Remove HB_NO_OPTIONS in favor of HB_NO_GETENV
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-06 12:16:51 -07:00
Behdad Esfahbod
36bb24f7b4
[dispatch] Forward arguments in all dispatch multiplexers
2019-05-05 10:14:17 -07:00
Behdad Esfahbod
c14efb8e68
Fix previous commit
...
Priority should be given to specific over dispatch. Broke sanitize before.
This fixes it, by moving prioritization to the context implementation, since
the correct priority cannot be done in the dispatch implementation. Done
for subset and sanitize only, which need it.
2019-05-05 09:54:58 -07:00
Behdad Esfahbod
b10f65933a
[dispatch] Use functionality from previous commit
...
To remove a couple of unwanted wrapper methods
2019-05-05 09:23:35 -07:00
Behdad Esfahbod
ac350c92fd
[dispatch] Try obj.dispatch(c) before trying c->dispatch(obj)
2019-05-05 09:10:46 -07:00
Behdad Esfahbod
0d5fd168f8
Revert "[WIP] [name] Port to fancy serializer machinery"
...
This reverts commit c7f366fbbb
.
Don't know how it got to master!
2019-05-03 10:37:32 -07:00
Cody Planteen
72e3eba8f8
Add configuration option HB_NO_GETENV to disable use of getenv()
2019-05-03 10:28:43 -07:00
Behdad Esfahbod
c7f366fbbb
[WIP] [name] Port to fancy serializer machinery
2019-05-02 21:04:31 -07:00
Behdad Esfahbod
8855af38a8
[name] Add NameRecord::copy()
2019-05-02 16:26:06 -07:00
Behdad Esfahbod
097bb3f0af
[name] Minor changes
2019-05-02 16:25:00 -07:00
Behdad Esfahbod
431b6e1c44
[serialize] Disable assertion for now
2019-05-02 16:22:32 -07:00
Behdad Esfahbod
8a32c9eecb
[serialize] Misc getting copy() to work
2019-05-02 16:20:18 -07:00
Behdad Esfahbod
7d497a3a92
[debug] Allow return_trace() to return any type
2019-05-02 16:20:03 -07:00
Behdad Esfahbod
91176d5b77
[serialize] Check offset base is within (possibly end of) object
2019-05-02 15:12:07 -07:00
Behdad Esfahbod
0f1a6ce826
[name] Fix format of susbetted table to 0
2019-05-02 15:03:41 -07:00
Behdad Esfahbod
87810fc958
[name] Use variable forwarding to simplify sanitize()
2019-05-02 14:45:57 -07:00
Behdad Esfahbod
bf91b418b0
[name]
2019-05-02 14:43:22 -07:00
Behdad Esfahbod
998b0b68ac
[serializer] Add copy() to (Unsized)ArrayOf
2019-05-02 14:39:52 -07:00
Behdad Esfahbod
88a4147240
[serializer] Accept exact type in serialize_subset/copy()
2019-05-02 14:22:31 -07:00
Behdad Esfahbod
88fdeeecc0
[serialize] Take arguments in copy()
2019-05-02 14:14:33 -07:00
Behdad Esfahbod
273ed6127b
[serializer] Add serialize_copy()
2019-05-02 14:04:51 -07:00
Behdad Esfahbod
bf22338f49
Remove dead code
2019-05-02 13:51:52 -07:00
David Corbett
14e1fabc41
Sync gen-vowel-constraints.py with current output
2019-05-01 21:29:06 -04:00
David Corbett
026ab825c8
Add dotted circles to more broken clusters
2019-05-01 13:59:34 -07:00
Ebrahim Byagowi
92588782d7
Remove space between right angle brackets now that we have C++11 ( #1689 )
2019-04-30 13:05:10 -07:00
Ebrahim Byagowi
f27fdca4aa
[doc] Add documentation to hb_color_get_* and hb_directwrite_face_* ( #1690 )
2019-04-30 13:01:04 -07:00
David Corbett
fe4a0ac707
Fix some dead links
2019-04-30 13:35:50 -04:00
Ebrahim Byagowi
9542bdd0ed
Add color channels getters ABI ( #1513 )
...
So can be used with language wrappers
2019-04-29 14:52:28 -07:00
David Corbett
4aa546b70a
Allow some Balinese Po & So as aksara modre bases
2019-04-29 11:37:35 -07:00
Behdad Esfahbod
6977a95fed
[subset] Don't crash if subsetting GSUB/GPOS fails
...
Fixes fuzzer issue.
2019-04-27 10:05:25 -07:00
Behdad Esfahbod
2b051e7aa1
[subset] Check error after calling serializer end
2019-04-27 10:01:11 -07:00
Behdad Esfahbod
750b65e9a9
[meta] Add hb_type_identity<>
...
To block template argument deduction.
2019-04-26 17:14:25 -07:00
Qunxin Liu
8c8922a019
[subset] Updates due to changes in resolve_links() on master branch
2019-04-26 15:24:47 -07:00
Garret Rieger
2f6ec35344
Move implementations of hb-ot-name-language.cc into a hb-static.cc
2019-04-26 15:24:47 -07:00
Qunxin Liu
19afd25004
[subset] Update to use _subset2() for name table
2019-04-26 15:24:47 -07:00
Qunxin Liu
1ca4b5c770
[subset] Add unit test for str de-dup
...
Also move the implementation of some methods from the .cc to the .hh
2019-04-26 15:24:47 -07:00
Qunxin Liu
9ad14f56b6
[subset] update name table subsetting with new serializer
2019-04-26 15:24:47 -07:00
Qunxin Liu
e501ea143d
[subset] Subset name table step 3, add --nameids option to guide the
...
selection of which name records to keep in the subset method.
2019-04-26 15:24:47 -07:00
Qunxin Liu
2637a81615
[subset] subset name table step 2, add implementation for collecting subset
...
elements and serialize method
2019-04-26 15:24:47 -07:00
Qunxin Liu
408c1daeb4
[subset] subset name table step 1, write out table unmodified, use accelerator to access
...
string
2019-04-26 15:24:47 -07:00
Behdad Esfahbod
3a7f5bdd18
Rewrite hb_is_signed()
2019-04-26 14:40:01 -07:00
Behdad Esfahbod
73c82f2301
[iter] Fix hb_is_iterator_of() to actually check item type
2019-04-26 13:16:48 -07:00
Behdad Esfahbod
c51f15ddfc
[array] Adjust hb_sorted_array_t copy constructor/assignment to match hb_array_t
2019-04-26 13:04:06 -07:00
Behdad Esfahbod
b2758c360c
[array] Use hb_is_cr_convertible_to()
2019-04-26 13:04:06 -07:00
Behdad Esfahbod
8ecae793aa
[meta] Add hb_is_cr_convertible_to()
2019-04-26 13:04:06 -07:00
Behdad Esfahbod
52bb0346d3
[meta] Add hb_decay<>
2019-04-26 13:04:06 -07:00
Michiharu Ariza
474f3587cd
copy retain_gids from input to plan
2019-04-26 10:12:38 -07:00
Behdad Esfahbod
c69f02784a
Fix sign-compare error on 32-bit systems
2019-04-24 16:31:37 -07:00
Behdad Esfahbod
59a8fa5353
[iter] Add tests for casting to hb_iter_t<> base class for hb_sorted_array_t<>
...
Something's phishy about hb_sorted_array_t<>. Can't get it work nicely with
change I'm making. Ugh..
2019-04-24 12:49:58 -04:00
Behdad Esfahbod
714307cc43
[iter] Remove fixed TODO
2019-04-24 10:56:12 -04:00
Behdad Esfahbod
22da12318a
[map] Fix TODO
2019-04-24 10:53:47 -04:00
Behdad Esfahbod
4c6136e976
[mutex] Remove TODO
2019-04-24 10:53:44 -04: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
42526d1697
[serialize] Fix SingleSubstFormat1 failure
2019-04-24 10:24:33 -04:00
Behdad Esfahbod
6cc9707c9c
[serialize] Rename
2019-04-24 10:22:06 -04:00
Behdad Esfahbod
085793d6cd
Remove wrong TODOs
2019-04-24 10:15:59 -04:00
Behdad Esfahbod
915b9ea5f4
[serialize] Add c->check_assign()
...
To check for assignment overflows.
2019-04-24 10:07:19 -04:00
Behdad Esfahbod
00a00bc1f2
Fix two TODOs
2019-04-24 10:01:30 -04:00
Behdad Esfahbod
11ab889a8d
Rename a few test programs
2019-04-24 09:55:24 -04:00
Behdad Esfahbod
12017db0bf
Move test code around
2019-04-24 09:24:38 -04:00
Behdad Esfahbod
27377a7e28
Rely on variadic parameter pack more
2019-04-24 09:22:14 -04:00
Behdad Esfahbod
3ad20c38ad
[serialize] Fix a few overflow TODO items
2019-04-24 09:09:00 -04:00
Behdad Esfahbod
175bdad8bf
One more variadic parameter pack use
2019-04-23 23:57:11 -04:00
Behdad Esfahbod
441cca2354
Use hb_forward() when forwarding parameter pack
2019-04-23 23:51:59 -04:00
Behdad Esfahbod
20f3134789
Use variadic templates in OffsetTo<> and various ArrayOf<>s
2019-04-23 12:59:17 -04:00
Ebrahim Byagowi
64ca2ffa4c
Fix clang's -Wmain complain ( #1678 )
2019-04-23 01:10:46 -07: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
9c724e48a2
[serializer] Add err_propagaged_error()
2019-04-22 17:21:42 -04:00
Behdad Esfahbod
ae8da4b61b
Minor
2019-04-22 15:25:11 -04:00
Behdad Esfahbod
24da1d0860
Use variadic template args for propagate_error()
...
Let's see if bots happy.
Not sure where else we can use these. Mm. Maybe in hb_invoke().
2019-04-22 15:20:25 -04:00
Behdad Esfahbod
9bab398462
Simplify propagate_error()
2019-04-22 15:16:35 -04:00
Behdad Esfahbod
42f4bd6b80
Minor warning fix again
2019-04-18 19:06:07 -04:00
Michiharu Ariza
267fb9c716
add spaces
2019-04-18 18:18:05 -04:00
Michiharu Ariza
ba0386060d
fix oss-fuzz issue 14345
2019-04-18 18:18:05 -04:00
Michiharu Ariza
63a2108480
silence MVC warnings 3rd attempt
2019-04-18 13:54:58 -07:00
Michiharu Ariza
705dde57fe
silence MVC warnings 2nd attempt
2019-04-18 11:32:10 -07:00
Michiharu Ariza
dd4c37529b
silence MVC warnings
2019-04-18 10:38:57 -07:00
Behdad Esfahbod
518e6e07f2
Minor
2019-04-18 12:21:25 -04:00
Behdad Esfahbod
91d958acc0
[array] Simplify copy assignment/constructor
...
To fix bogus MSVC warnings:
c:\projects\harfbuzz\src\hb-array.hh(189): warning C4521: 'hb_array_t<Type>': multiple copy constructors specified [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
c:\projects\harfbuzz\src\hb-array.hh(189): warning C4522: 'hb_array_t<Type>': multiple assignment operators specified [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
2019-04-18 10:04:10 -04:00
Behdad Esfahbod
693d91cd49
[serialize] Fix offset calculation
2019-04-17 17:59:39 -04:00
Behdad Esfahbod
db0c9a1485
[subset] Assert offsets are zero during relocation
...
If they're not, it's a bug in our subsetting logic somewhere. So check.
2019-04-17 17:58:13 -04:00
Behdad Esfahbod
efbba7ad26
[serializer] Add copy()
...
Calls obj.copy() or obj.operator=() in that order.
2019-04-17 11:00:08 -04:00
Behdad Esfahbod
c67a0d581f
Add HB_RETURN
2019-04-17 10:29:10 -04:00
David Corbett
6745a600bf
Comment out ot_languages where fallback suffices
2019-04-17 10:28:59 -04:00
David Corbett
5daeff3e68
Fix "hb_script_" doc typo
2019-04-17 10:06:13 -04:00
Behdad Esfahbod
6916b77863
One more auto return type
2019-04-16 18:33:51 -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
David Corbett
1ce11b4437
Reduce LangTag from 3 language system tags to 1
2019-04-16 11:41:01 -04:00
Behdad Esfahbod
155e92f259
Reduce NullPool size
2019-04-16 11:35:09 -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
ff68be31bf
Add hb_void_tt<> ala std::void_t
2019-04-16 09:59:51 -04:00
Behdad Esfahbod
89fea21697
Fix copyright
2019-04-15 17:36:09 -04:00
Behdad Esfahbod
07776b6096
More tweaks to previous commit
...
Delete assignment operator of OffsetTo<> instead of Offset<>.
In simple ArrayOf<>::sanitize() assert that Type has assignment operator.
Ideally we should SFINAE this and fallback to calling Type::sanitize()
if assignment operator is not available. But we don't have a case of
that in the codebase.
2019-04-15 16:43:34 -04:00
Behdad Esfahbod
699de689e9
Delete default assignment operator Offset<>
2019-04-15 16:00:20 -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
19e800c9d8
Ugh. Another try, to unbreak gcc this time!
...
Jenga.
2019-04-15 12:07:00 -04:00
Behdad Esfahbod
3a88f55c15
Move location of HB_UNUSED to make MSVC happy
2019-04-15 11:59:57 -04:00
Behdad Esfahbod
1ae265888e
Fix gcc warning
2019-04-15 11:31:40 -04:00
Nathan Willis
cd9889cac3
Docs: update and extended GTK-Doc comments for hb-ot-math.
2019-04-14 15:33:56 +01:00
Nathan Willis
3f74b7a14b
Docs: Regularize GTK-Doc comments for hb-ot-color.
2019-04-14 15:20:56 +01:00
Behdad Esfahbod
47e538a35f
Add HB_NO_SUBSET_LAYOUT
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 22:54:15 -04:00
Behdad Esfahbod
a98e4068e7
Revert "Hide symbols in hb-iter"
...
This reverts commit 98f14c4cdb
.
Same as previous commit.
2019-04-12 22:42:44 -04:00
Behdad Esfahbod
dab92bdd46
Revert "Hide more symbols"
...
This reverts commit 2e86d50915
.
I think the setup that caused me to do this is faulty and not hiding inlines.
2019-04-12 22:39:38 -04:00
Behdad Esfahbod
98f14c4cdb
Hide symbols in hb-iter
...
Painful. All template methods need to be explicitly hidden :(.
Maybe we should switch to -fvisibility=hidden pragma.
A LOT more to go.
2019-04-12 18:12:06 -04:00
Behdad Esfahbod
2e86d50915
Hide more symbols
...
Exposed by:
$ make -j5 CPPFLAGS="-O0" CXXFLAGS=-flto=thin LDFLAGS=-lc++ && ./check-symbols.sh
2019-04-12 18:07:42 -04:00
Behdad Esfahbod
caa20e4ef9
Hide a few more symbols
...
Exposed by:
$ make CPPFLAGS=-O0
2019-04-12 18:00:58 -04:00
Behdad Esfahbod
95df00aec1
Hide a few static methods
...
Looks like static methods that do not get inlined end up exported.
We have a lot more. Need to protect all at some point. Wish there
was an easier way, like the visibility flag we pass that automatically
hides all inline methods.
Was exposed by check-symbols.sh when compiling on OS X 10.14 with:
$ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
2019-04-12 17:51:14 -04:00
Behdad Esfahbod
2f4be4ba54
Add HB_NO_OPTIONS
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 16:21:58 -04:00
Behdad Esfahbod
079d2dcbb2
Add HB_NO_NAME_TABLE_AAT
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 15:00:37 -04:00
Behdad Esfahbod
60a58aa61c
Add HB_NO_OT_FONT_BITMAP
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 14:58:53 -04:00
Behdad Esfahbod
160c4d8b2d
Add HB_NO_OT_FONT_CFF
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 14:57:49 -04:00
Behdad Esfahbod
35f3b97fac
Add HB_NO_OT_SHAPE_COMPLEX_HEBREW_FALLBACK
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 10:16:12 -04:00
Behdad Esfahbod
414c5de26b
Add HB_NO_OT_SHAPE_FALLBACK
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 10:12:11 -04:00
Behdad Esfahbod
fe0018f7ef
Add HB_NO_OT_SHAPE_COMPLEX_THAI_FALLBACK
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 09:35:29 -04:00
Behdad Esfahbod
9ddbfa006d
Add HB_NO_OT_LAYOUT_BLACKLIST
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-12 09:33:25 -04:00
Behdad Esfahbod
571fad4cf1
Add HB_NO_OT_SHAPE_COMPLEX_VOWEL_CONSTRAINTS
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-11 19:42:05 -04:00
Nathan Willis
3db227265b
Update gtk-doc annotations for inout counts on various getter functions.
2019-04-12 00:00:47 +02:00
Nathan Willis
c08ddbd91b
[Docs] Minor edits to gtk-doc inline comment review.
2019-04-12 00:00:47 +02:00
Nathan Willis
af5230bce3
[Docs] Minor; fix formatting for gtk-doc multiple-annotations.
2019-04-12 00:00:47 +02:00
Nathan Willis
6c0a1e8cd6
[Docs] Annotate gtk-doc formatting with some un-annotated (out)s.
2019-04-12 00:00:47 +02:00
Nathan Willis
5122805c74
[Docs] Fix gtk-doc formatting for (out) and (inout).
2019-04-12 00:00:47 +02:00
Nathan Willis
d3178aa52a
[Docs] Fix gtk-doc references to 'kern' table functions, clarifying that GPOS is not examined.
2019-04-12 00:00:47 +02:00
Nathan Willis
3449031fad
[Docs] Add inline gtk-doc documentation of GDEF glyph classes.
2019-04-12 00:00:47 +02:00
Nathan Willis
930f6fc3da
[Docs] Add inlind gtk-doc comments for hb-ot-layout functions.
2019-04-12 00:00:47 +02:00
Behdad Esfahbod
b52c0e54b9
Use injected class name to simplify macros
2019-04-11 11:20:10 -04:00
Behdad Esfahbod
baf1e79075
[C++11] Use deleted methods
2019-04-11 11:18:04 -04:00
Behdad Esfahbod
824fd342d5
Rename a few macros
2019-04-11 11:16:01 -04:00
Behdad Esfahbod
edfc6be4a0
[arabic] Disable fallback shaping if HB_NO_OT_SHAPE_COMPLEX_ARABIC_FALLBACK defined
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 16:10:54 -04:00
Behdad Esfahbod
4d31662b5d
Don't install ot-font funcs on new fonts if HB_NO_OT_FONT defined
...
Currently linker cannot GC hb-ot-font completely because we install
it on fonts by default. Don't do that if HB_NO_OT_FONT defined.
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 15:40:55 -04:00
Behdad Esfahbod
b111b3de02
Don't use any default unicode funcs if HB_NO_UNICODE_FUNCS is defined
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-04-10 15:39:48 -04:00
Behdad Esfahbod
c5509be93a
[coretext] Fix unused-variable error
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1659
2019-04-08 14:50:58 -04:00
Maks Naumov
4c19aa2620
Fix MSVC C4068 warning ( #1656 )
2019-04-05 11:46:27 -07:00
Maks Naumov
a96d003d6e
Fix MSVC C4138 warning ( #1657 )
2019-04-05 02:29:56 -07:00
Behdad Esfahbod
c68eb7002f
Minor
2019-04-03 16:24:12 -07:00
Behdad Esfahbod
85adf4ad5c
[GDEF] Don't assume glyphlist is sorted
...
As was hit by the fuzzer.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14032
2019-04-03 16:07:36 -07:00
Behdad Esfahbod
ecabdffc61
[algs] Add hb_min() and hb_max()
2019-04-03 16:06:34 -07:00
Behdad Esfahbod
7b863142ce
[serialize] Make putting breakpoint on out-of-memory easier
2019-04-03 15:48:27 -07:00
Behdad Esfahbod
2bd2750234
[iter] Tweak SFINAE again
...
Don't think we need hb_is_same().
2019-04-03 15:31:53 -07:00
Behdad Esfahbod
f02ebc89ec
[array] Add compy assignment operator since copy constructor is explicit
2019-04-03 15:23:06 -07:00
Behdad Esfahbod
20a73da2c9
[array] Add default copy constructor
...
MSVC seems to need it.
2019-04-03 14:32:15 -07:00
Behdad Esfahbod
d419a9a437
[iter] Use different SFINAE scheme to make MSVC happy
...
From Orvid King: TLDR; MSVC has some issues using sizeof(declval<T>()) for
SFINAE of templated types, so I just used SFINAE in a different context where
MSVC doesn't have the issue.
2019-04-03 14:18:19 -07:00
Behdad Esfahbod
2778df7972
[meta] Add hb_is_same()
2019-04-03 14:15:01 -07:00
Behdad Esfahbod
6215fb8e68
[serialize] Actually reclaim storage from duplicate objects
2019-04-02 23:10:03 -07:00
Behdad Esfahbod
3305a2cad2
[serialize] Port to use object pool
...
Tested, but feels fragile :(.
2019-04-02 22:58:49 -07:00
Behdad Esfahbod
5efbc01174
[pool] Uses memset() instead of assigning Null()
...
Assignment is invalid on invalid object.
2019-04-02 22:41:06 -07:00
Behdad Esfahbod
434d78bf91
Add hb_pool_t<> for pooled memory allocation
2019-04-02 21:46:40 -07:00
Behdad Esfahbod
8e4df1a152
[serialize] Disable packed_map again
...
Ugh. Need to think of something else.
2019-04-02 20:20:53 -07:00
Behdad Esfahbod
31c1a83899
[map] Protect more against pointer deref
2019-04-02 20:17:27 -07:00
Behdad Esfahbod
5bffa9e375
More
2019-04-02 20:13:16 -07:00
Behdad Esfahbod
5b66b033fd
[serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
2019-04-02 19:30:22 -07:00
Behdad Esfahbod
42ab32cbba
[iter] Remove passing pointer to hb_iter()
...
While doable with hb_deref_pointer() as well, we also would then
need to do it in a ton of places. Not worth it / messy.
2019-04-02 18:42:51 -07:00