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
Behdad Esfahbod
d0da547b37
[array] Use dagger for hashing array
...
Also switch to better mixing.
2019-04-02 18:23:05 -07:00
Behdad Esfahbod
b6f29bf141
[iter] Accept pointers in hb_iter()
...
No idea how to avoid dupicating code. Was hoping hb_deref_pointer()
would do it, but looks like a pointer can't bind to a universal
reference T&&. Humm.
2019-04-02 18:12:01 -07:00
Behdad Esfahbod
fc24bb9046
[serialize] Towards maintaining packed_map
2019-04-02 17:49:52 -07:00
Behdad Esfahbod
aa2293a55e
[serialize] Minor
2019-04-02 17:42:10 -07:00
Behdad Esfahbod
e42b82c828
[serialize] Handle non-nullable offsets
2019-04-02 17:23:16 -07:00
Behdad Esfahbod
e04518bafc
[serialize] Movce empty-object handling earlier
2019-04-02 17:20:04 -07:00
Behdad Esfahbod
7f73c9744e
[serialize] Minor
2019-04-02 17:12:24 -07:00
Behdad Esfahbod
5a3de4f4f8
[serialize] Allow offset links that have base offset from the object base
...
Rarely used, but used, in name table or similar constructs.
2019-04-02 16:53:42 -07:00
Ebrahim Byagowi
edad6b2c45
[test][iter] minor, fix double promotion warning
2019-04-03 00:48:59 +04:30
Ebrahim Byagowi
062f5d6e7a
[test] minor, c style comments
2019-04-02 20:27:00 +04:30
Ebrahim Byagowi
afdbf960d6
[iter][test] Add another test for hb_reduce
...
Different initial and accumulator types
2019-04-02 20:25:06 +04:30
Behdad Esfahbod
bfa02bef45
[serialize] Switch to tetris-packing
2019-04-01 21:36:13 -07:00
Behdad Esfahbod
f0ea3ac17b
[serialize] Fix linking
2019-04-01 21:36:03 -07:00
Behdad Esfahbod
7c0e2054e0
[serialize] Minor
2019-04-01 21:32:29 -07:00
Behdad Esfahbod
64d0f08938
[cmap] Minor
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
2e675cc7b5
[subset] Call serialize start/end around it
...
To be cleaned up.
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
abe33c6149
[serialize] Assert stack
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
72e9b2c16c
[serialize] Add add_link() to add link
2019-04-01 16:56:41 -07:00
Behdad Esfahbod
74addbecac
[serialize] Add default template type to push()
2019-04-01 16:56:41 -07:00
Ebrahim Byagowi
b8642087e6
[iter] hb_reduce, accumulator with a different type
2019-04-01 16:56:29 -07:00
Ebrahim Byagowi
e526414c75
[iter] Implement hb_reduce
2019-04-01 16:56:29 -07:00
Behdad Esfahbod
f3aca6aa26
[serialize] Implement linking
...
Untested!
2019-03-31 21:37:14 -07:00
Behdad Esfahbod
17f0cfa7ea
Move BEInt to hb.hh
...
I knows...
2019-03-31 21:34:19 -07:00
Behdad Esfahbod
78fc43f293
[iter] Fix up build, ouch
...
Yeah, some things not very clear...
2019-03-31 19:17:07 -07:00
Jonathan Kew
e5d6fe9782
Don't skip setting the .end field of the first range
...
Fixes a bug in CoverageFormat2::serialize whereby the first range
was not serialized correctly if it consists of only a single glyph ID.
This broke shaping of U+0626 in the Arabic fallback shaper, because it
is not found in the coverage table of the 'init' and 'medi' lookups.
Also fix similar bug in ClassDefFormat2::serialize, noted during code
inspection (I haven't observed a case that was actually affected by
this, but it looks broken).
Fixes https://github.com/harfbuzz/harfbuzz/issues/1504
2019-03-31 19:02:47 -07:00
Behdad Esfahbod
8a8d45b924
[iter] Adjust hb_copy() and use it
...
Untested.
2019-03-31 19:00:09 -07:00
Ebrahim Byagowi
ba4b7be455
Remove coretext_aat shaper ( #1581 )
...
coretext_aat was a temporary shaper to redirect shaping of AAT fonts
to CoreText and leaving the rest for HarfBuzz. As HarfBuzz now supports
AAT and Chrome now actually ships that on a stable version on macOS,
we no longer care about such use-case. If a client really wants 100%
metrics compatibility with CoreText better to use it directly or through
our API. Replicating the same behavior still is possible using
hb_shape_full, something we don't care or like to offer anymore.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1478
2019-03-31 01:32:30 -07:00
Behdad Esfahbod
d6005b49b3
[serialize] Start implementing linking
2019-03-30 19:49:56 -07:00
Behdad Esfahbod
313b3057c3
[serializer] Implement dedup!
2019-03-30 19:46:35 -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
d74dc3ef65
[serialize] Don't insert empty object into tree
2019-03-30 19:26:37 -07:00
Behdad Esfahbod
7fd8228326
[serialize] Towards maintaining hashmap
2019-03-30 19:16:20 -07:00
Behdad Esfahbod
f254f45a1e
[serialize] Only pack main object if there are other objects
...
Avoids a memmove for tables that don't use the object packing mechanism.
2019-03-30 19:05:51 -07:00
Behdad Esfahbod
946d446f9b
[serialize] Copy both sides of the buffer
2019-03-30 19:03:55 -07:00
Behdad Esfahbod
8512dc565d
[serialize] Simplify copy
2019-03-30 19:01:23 -07:00
Behdad Esfahbod
0b1fe7b716
[serializer] Unbreak for now
2019-03-30 18:48:26 -07:00
Behdad Esfahbod
10f062234e
[map] Shuffle fini code
2019-03-30 18:44:01 -07:00
Behdad Esfahbod
e6b78003ef
[vector] Add move semantics
2019-03-30 18:33:30 -07:00
Behdad Esfahbod
4c4d3c3ed5
[vector] Add some move and forwarding
2019-03-30 18:30:50 -07:00
Behdad Esfahbod
7c9ceabcef
[meta] Add hb_move and hb_forward ala std::
2019-03-30 18:23:24 -07:00
Behdad Esfahbod
9a19b885f9
[serialize] Flesh out packing
2019-03-30 18:14:30 -07:00
Behdad Esfahbod
357c7c611c
[vector] Add copy constructor and assignment operator
2019-03-30 18:13:57 -07:00
Behdad Esfahbod
6f69c9d26f
[serialize] Minor
2019-03-30 18:00:03 -07:00
Behdad Esfahbod
a43290192b
[serialize] Add packed_map
2019-03-30 17:57:33 -07:00
Behdad Esfahbod
bed150bd2e
[serialize] Start fleshing out object stack
2019-03-30 17:43:43 -07:00
Behdad Esfahbod
63c3565189
[serialize] Simplify propagate_error()
2019-03-30 17:12:40 -07:00
Behdad Esfahbod
dbe9ba6711
[serialize] Add object_t, link_t, and snapshot_t
2019-03-30 17:10:59 -07:00
Behdad Esfahbod
38d57b9a66
[map] Add another TODO item
2019-03-30 16:38:06 -07:00
Behdad Esfahbod
7fd940f899
[map] Add TODO
2019-03-30 16:29:19 -07:00
Behdad Esfahbod
6dcf7c4017
[serialize] Add unused 'tail'
2019-03-30 15:08:39 -07:00
Behdad Esfahbod
fe05e48086
[serialize] Add ran_out_of_room
2019-03-30 15:06:25 -07:00
Behdad Esfahbod
a7c63cd8f8
Split sanitize and dispatch into their own files
2019-03-30 14:59:40 -07:00
Behdad Esfahbod
be66b575fc
Move serializer to hb-serialize.hh
2019-03-30 14:53:54 -07:00
Behdad Esfahbod
bb22462f29
Whitespace
2019-03-30 14:46:54 -07:00
Behdad Esfahbod
ef33b5d1f6
[map] Deref pointers before equality check
2019-03-30 14:39:21 -07:00
Behdad Esfahbod
c98f51da71
[map] Templatize hb_map_t
...
Template name is hb_hashmap_t<K,V>.
2019-03-30 14:32:52 -07:00
Behdad Esfahbod
4b7f4dbc0c
Add hb_deref_pointer()
2019-03-30 13:48:32 -07:00
Behdad Esfahbod
e530692799
[iter] Fix bug in hb_any() and hb_none()
2019-03-29 23:31:39 -07:00
Behdad Esfahbod
f505b5d5c9
[iter] Port remaining "for (auto" instances to daggers
2019-03-29 22:55:02 -07:00
Behdad Esfahbod
668d2d562f
[iter] One more dagger
2019-03-29 22:48:38 -07:00
Behdad Esfahbod
d51452500f
[iter] Remove more wrong &&'s
...
Sigh...
2019-03-29 22:48:12 -07:00
Behdad Esfahbod
05f2130a1c
[iter] More daggers
2019-03-29 22:43:12 -07:00
Behdad Esfahbod
22ec4c3aa5
[iter] More daggers
2019-03-29 22:29:00 -07:00
Behdad Esfahbod
688069bbfb
[iter] One more dagger
2019-03-29 22:17:31 -07:00
Behdad Esfahbod
90b60bd690
Remove HB_DEBUG_WOULD_APPLY
...
Not that useful.
2019-03-29 22:12:42 -07:00
Behdad Esfahbod
4d28267e59
[iter] Port more to daggers
2019-03-29 22:04:15 -07:00
Behdad Esfahbod
9d8c72042b
Whitespace
2019-03-29 21:59:28 -07:00
Behdad Esfahbod
418e9d07e2
Simplify code
2019-03-29 21:57:26 -07:00
Behdad Esfahbod
f5ef8a7347
[iter] Port one more function to dagger
2019-03-29 21:57:17 -07:00
Behdad Esfahbod
bcab098c8f
[iter] Port more code to daggers
2019-03-29 21:49:18 -07:00
Behdad Esfahbod
4c75158e18
[iter] Port two more functions to daggers
2019-03-29 21:46:13 -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
6237b47f0c
[iter] Add hb_unzip()
2019-03-29 21:36:49 -07:00
Behdad Esfahbod
f1dad91eb3
Whitespace
2019-03-29 21:17:08 -07:00
Behdad Esfahbod
896b31670d
[iter] Port two more loops to dagger
2019-03-29 21:16:30 -07:00
Behdad Esfahbod
8e34cb251a
[iter] Remove unneeded &&
...
Next commit needs this. I never fully get this, sigh.
2019-03-29 21:14:20 -07:00
Behdad Esfahbod
12a4c0441f
Whitespace
2019-03-29 21:06:10 -07:00
Behdad Esfahbod
4c38a9f601
Remove hb_assign()
...
Not needed anymore. We just use operator= now.
2019-03-29 20:23:07 -07:00
Behdad Esfahbod
b986c6a321
[C++11] Remove IntType::set() in favor of operator=
2019-03-29 20:21:21 -07:00
Behdad Esfahbod
58ad357951
[vector] Accept all types in push(...)
...
Let assignment operator worry about conversion.
2019-03-29 20:05:19 -07:00
Behdad Esfahbod
489faf826c
[C++11] Use type aliases for template partial instantiations
2019-03-29 20:01:37 -07:00
Behdad Esfahbod
4fd02f6ee5
Remove unused line
2019-03-29 17:58:23 -07:00
Behdad Esfahbod
9a5b15dc1e
[C++11] Replace BEInt.set() with operator=
2019-03-29 17:58:19 -07:00
Behdad Esfahbod
0aa59b1de3
[C++11] Add operator= to IntType<>
...
Now that we require C++11 we can do this.
2019-03-29 17:58:15 -07:00
Behdad Esfahbod
eca466e6b1
Err. Fixup C++11 polyfill removal
...
Fixes 1d75db19fb
2019-03-29 15:59:04 -07:00
Behdad Esfahbod
3f36c89f2e
Inline explicit_operator macro
...
Now that we require C++11, no need to macro.
2019-03-29 15:22:46 -07:00
Behdad Esfahbod
1d75db19fb
Remove C++<11 polyfill
...
Leaving hb-atomic.hh as is since harmless and other projects might
copy from that file.
2019-03-29 15:20:34 -07:00
Behdad Esfahbod
8e7887ca5f
Merge branch 'master' into iter
2019-03-29 14:37:04 -07:00
Ebrahim Byagowi
b292772e6e
[dwrite] A new API, hb_directwrite_face_get_font_face ( #1600 )
...
Can be useful when using HarfBuzz for font loading and shaping
but using DirectWrite for rendering.
2019-03-29 13:00:56 -07:00
Behdad Esfahbod
59f36f3682
Replace REPLACEME's left out of 2.4.0
...
https://github.com/harfbuzz/harfbuzz/issues/1641
2019-03-29 10:55:12 -07:00
Behdad Esfahbod
443db2a246
[iter] Remove hb_len()
...
Not planning on using it. So remove. Can add later if needed.
2019-03-29 10:47:13 -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
343e6063dc
Add hb_is_integer(T)
2019-03-28 21:44:12 -07:00
Behdad Esfahbod
f639b9a8ea
[iter] Add hb_len() function-object
2019-03-28 21:34:47 -07:00
Behdad Esfahbod
a030ce4ff8
Merge branch 'master' into iter
2019-03-28 21:26:50 -07:00
Behdad Esfahbod
d6fc1d49aa
2.4.0
2019-03-28 21:21:26 -07:00
Behdad Esfahbod
d2db71fdc4
Use internal bsearch() for language tags
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/1639
2019-03-28 21:04:34 -07:00
Behdad Esfahbod
21bb80ebf2
[indic] Add back medial-consonant to grammar
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1592
2019-03-28 20:50:04 -07:00
Behdad Esfahbod
5ab6de7a6f
[khmer] Add trailing Coeng to syllable grammar
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1541
2019-03-28 20:23:12 -07:00
Behdad Esfahbod
160b4a2b01
Fix shell syntax error
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1612
2019-03-28 13:44:59 -07:00
Behdad Esfahbod
8665b9b0a2
Comment
2019-03-28 13:44:59 -07:00
punchcutter
a7eed7e41d
Override USE category for Grantha and Tirhuta visargas to allow marks
2019-03-28 13:31:45 -07:00
Egor Pugin
cf040c0fef
Disable unwanted C++ definitions for MSVC.
...
MSVC does not set __cplusplus to the latest standard and also it does not like redefining some keywords.
2019-03-28 11:10:42 -07:00
Behdad Esfahbod
ec2a5dc859
Use class templates for Null objects
...
This allows partial-instantiating custom Null object for template Lookup<T>.
Before, this had to be handcoded per instantiation. Apparently I missed
adding one for AAT::ankr.lookupTable, so it was getting the wrong (generic)
null for Lookup object, which is wrong and unsafe.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=944346
2019-03-26 16:23:40 -07:00
Behdad Esfahbod
96f1237794
[aat] Add missing check to ankr table
...
Isn't absolutely needed. But helps.
2019-03-26 16:17:45 -07:00
Qunxin Liu
2d9034491e
completely remove lines that are commented out
2019-03-26 13:39:33 -07:00
Qunxin Liu
3147133b61
update arguments in_populate_gids_to_retain() and _create_old_gid_to_new_gid_map()
...
so they don't use deprecated variable
2019-03-26 13:39:33 -07:00
Qunxin Liu
79a6c25849
try to remove deprecated variable from struct definition
2019-03-26 13:39:33 -07:00
Michiharu Ariza
bcb4e505d6
cff2 subset fuzzer issues ( #1619 )
...
* add check to FDArray::serialize
* add test files
* fix off by one
2019-03-15 13:46:25 -07:00
Ebrahim Byagowi
8aaab78efc
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
2019-03-14 16:49:42 -07:00
David Corbett
7de9f92ee9
Categorize U+09FC as Consonant_Placeholder
2019-03-13 12:59:56 -07:00
Behdad Esfahbod
e52ec3fc23
Remove redundant hb_ot_layout_lookup_would_substitute_fast
2019-03-11 18:09:51 -07:00
Khaled Hosny
c2442c90d6
[doc] Add placeholder since version for new flag
2019-03-12 01:10:52 +02:00
David Corbett
8c42f03215
Remove obsolete overrides from Indic/USE scripts
2019-03-11 16:07:52 -07:00
Eric Muller
b38bab8622
Update generation code for hb-ot-shape-complex-vowel-constraints.cc. Remove 'unlikely'
2019-03-11 16:06:41 -07:00
Eric Muller
44a67ddeb8
Fix coding style.
2019-03-11 16:06:41 -07:00
Eric Muller
30d7c40f8c
Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences.
...
Current behavior unchanged if this flag is not set (and it isn't by default).
2019-03-11 16:06:41 -07:00
David Corbett
e723c04de1
Update to Unicode 12.0.0
2019-03-07 10:15:31 -08:00
Adrian Wong
2f125b0fa7
[indic] Remove superfluous ZWNJ check in final reorder of pre-base matras
2019-03-05 16:41:49 -08:00
Stephan Bergmann
d936ad4582
Fix hb_atomic_* variants based on C++11 atomics
...
I stumbled over this when trying to upgrade the version of HarfBuzz used by
LibreOffice to 3.2.1 (see <https://gerrit.libreoffice.org/plugins/gitiles/core/
+/b7ddc514bff9bdf682abae537f990aa01dc2c0fb%5E!/> "Upgrade to latest
HarfBuzz 2.3.1"), where building with MSVC 2017 failed like
> c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2440: 'reinterpret_cast': cannot convert from 'const int *' to 'std::atomic<int> *'
> c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): note: Conversion loses qualifiers
> c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2227: left of '->load' must point to class/struct/union/generic type
(see <https://ci.libreoffice.org/job/gerrit_windows/29916/ >).
I added all the necessary "const" to make building of HarfBuzz 2.3.1 with
MSVC 2017 succeed for me. There may be more missing at least conceptually.
2019-03-05 12:11:32 -08:00
Martin Hosken
731b13e4e9
Fix offset drift in graphite integration
2019-03-03 22:10:46 -08:00
Garret Rieger
4f37ab63de
Make hb_subset_input_glyph_set () actually do something.
2019-03-01 10:49:46 -08:00
Ebrahim Byagowi
45149eb34f
[dwrite] hb_directwrite_face_create, a new API
...
It makes a hb_face_t from IDWriteFontFace, useful when using
DirectWrite facilities for font selection, loading and rendering
but using harfbuzz for shaping.
2019-02-26 15:42:38 -08:00
David Corbett
45adc18526
Fix or document unsupported font-feature-settings
2019-02-25 17:48:16 -05:00
Michiharu Ariza
93739242e1
minor edit
2019-02-20 13:23:12 -08:00
Michiharu Ariza
eebc21c8de
fix crash in hb_map_t::clear()
...
in case called immediately after init()
2019-02-20 12:43:18 -08:00
Evgeniy Reizner
d29c8424c8
Typo ( #1588 )
...
Fixed a small typo.
[skip ci]
2019-02-19 20:05:00 +03:30
Khaled Hosny
6bd4c082e4
[doc] Document hb_feature_from_string() syntax
...
Copied and edited from the util option documentation. The docbook table
syntax is too verbose, but that is the best I can come up with.
2019-02-18 17:00:44 -08:00
Behdad Esfahbod
11456b2d9c
WHitespace
2019-02-15 16:58:43 -08:00
Behdad Esfahbod
77060bcda2
[iter] Add hb_all, hb_any, hb_none
2019-02-15 16:55:08 -08:00
Behdad Esfahbod
72dd5e34e0
[iter] Make hb_iter() into function-object
2019-02-15 16:15:50 -08:00
Behdad Esfahbod
98be7bd77a
[iter] Make hb_map into function-object
2019-02-15 16:09:29 -08:00
Behdad Esfahbod
c1e5ba81fe
Merge remote-tracking branch 'origin/master' into iter
2019-02-15 16:06:03 -08:00
Behdad Esfahbod
b8b3b3e38b
[iter] Add hb_enumerate() and use it
2019-02-15 16:05:36 -08:00
Behdad Esfahbod
3da79dd5b9
Merge pull request #1557 from harfbuzz/cff-more-arrayof-fixes
...
CFF more arrayof fixes
2019-02-15 15:54:51 -08:00
Michiharu Ariza
d8a68728a0
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-15 14:48:10 -08:00
Michiharu Ariza
90c8bbf987
Merge branch 'master' into cff-retain-gids
2019-02-15 14:47:38 -08:00
Martin
5c2bb1de8d
Support xlclang++ on AIX. ( #1584 )
2019-02-15 21:53:46 +03:30
Behdad Esfahbod
1558a43342
[test] Minor
2019-02-14 20:46:13 -08:00
Behdad Esfahbod
fa373584de
[algs] Test pair more
2019-02-14 20:15:07 -08: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
5b99c92d4c
[iter] Use more
2019-02-14 17:10:04 -08:00
Behdad Esfahbod
72c1b59588
[iter] Use in more places
2019-02-14 15:43:20 -08:00
Behdad Esfahbod
40cce41eae
[iter] Use in a couple more intersects() calls
2019-02-14 15:14:37 -08:00
Behdad Esfahbod
bafdf1829d
[iter] Use in a couple more closure() calls
2019-02-14 15:13:16 -08:00
Behdad Esfahbod
fa35d3fd81
[iter] Add hb_drain
2019-02-14 14:04:05 -08:00
Behdad Esfahbod
f4cfd6b6ad
[iter] A couple more hb_apply() + lambda uses
2019-02-14 13:45:52 -08:00
Behdad Esfahbod
7514a49f21
[iter] Use hb_apply() with lambda functions in a few places
2019-02-14 13:16:33 -08:00
Behdad Esfahbod
0670e1a6f5
[iter] Remove excess use of universal references
...
Every time I have to study these to understand why a change is right..
2019-02-14 11:53:40 -08:00
Behdad Esfahbod
773d75637c
[iter] Add hb_apply()
2019-02-14 11:40:22 -08:00
Behdad Esfahbod
00db94095d
[iter] Make hb_filter() a function-object
2019-02-14 11:10:13 -08:00
Behdad Esfahbod
aa4c321262
[iter] Make hb_zip() a function-object
2019-02-14 11:07:12 -08:00
Behdad Esfahbod
f8fcfb263e
[iter] Accept pointers to hb_sink()
2019-02-14 11:03:29 -08:00
Behdad Esfahbod
b530573ad9
[iter] Make hb_sink function-object
2019-02-14 11:00:10 -08:00
Behdad Esfahbod
bb139cb8d0
[iter] Back to dagger formatting for pipelines
2019-02-14 10:52:02 -08:00
Behdad Esfahbod
5fa52e62b1
[iter] Accept iterator, not iterable, in hb_sink()()
2019-02-14 10:51:02 -08:00
Behdad Esfahbod
0f292ea85f
[iter] Accept iterator, not iterable, in hb_filter()()
2019-02-14 10:49:31 -08:00
Behdad Esfahbod
345bfbb207
[iter] Accept iterator, not iterable, in hb_map()()
2019-02-14 10:48:20 -08:00
Behdad Esfahbod
16cc313dcd
[iter] Use hb_sink()
2019-02-14 10:40:05 -08:00
Behdad Esfahbod
b702a0cbf8
[iter] Add hb_sink()
2019-02-14 10:39:58 -08:00
Michiharu Ariza
1cb1d5d7fb
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-14 10:09:19 -08:00
Michiharu Ariza
6f1dfd082c
Merge branch 'master' into cff-retain-gids
2019-02-14 10:08:16 -08:00
Behdad Esfahbod
7d2376de33
Merge branch 'master' into iter
2019-02-13 22:13:37 -08:00
Ebrahim Byagowi
890d0ee77f
Minor, use a meaningful naming in template parameter ( #1582 )
2019-02-14 00:27:01 +03:30
Michiharu Ariza
8a568a8858
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-13 11:25:00 -08:00
Michiharu Ariza
b1dbc77fa6
Merge branch 'master' into cff-retain-gids
2019-02-13 11:24:38 -08:00
Ebrahim Byagowi
1e1d0e63df
Fix djgpp complains by tweaking templates ( #1579 )
...
For some reasons djgpp doesn't understand "unsigned int" can be same
with one of uint*_t anyway so lets do that for it explicitly.
Just to note, our CI's djgpp is based GCC 7.2.0 and isn't old.
2019-02-13 12:58:01 +03:30
Michiharu Ariza
bc33c617b8
Merge branch 'master' into cff-retain-gids
2019-02-12 15:10:50 -08:00
Michiharu Ariza
c6af846178
tweaked --desubroutinize to remove hintmask only subrs
2019-02-12 15:10:43 -08:00
Michiharu Ariza
c83412e4ce
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-11 14:16:25 -08:00
Ken
fdfa3d29b7
hb-coretext.cc: remove TARGET_OS_MAC from test ( #1578 )
...
it is always true when building on APPLE systems
and this file only builds on APPLE systems
2019-02-11 11:16:05 +03:30
Michiharu Ariza
e2856c2d85
retain FDSelect & FDArray with --retain-gids
...
so in sync with fonttools behavior
2019-02-07 15:32:32 -08:00
Michiharu Ariza
1239b6b2b4
Merge branch 'master' into cff-more-arrayof-fixes
2019-02-07 10:29:40 -08:00
Michiharu Ariza
a5fa76977b
Merge branch 'master' into cff-retain-gids
2019-02-07 10:28:13 -08:00
Michiharu Ariza
214d0b024b
minor change
2019-02-07 10:27:43 -08:00
Ken Cunningham
7859decdd0
hb-coretext.cc: clean up macosx test
...
TARGET_OS_OSX was introduced only in late OS versions
so always returns as "0" on older systems.
if !TARGET_OS_IPHONE can work, as it returns as !0 on older
systems where TARGET_OS_IPHONE is not defined, but is not
specific
if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
is both specific and accurate on all systems.
2019-02-05 20:26:49 -08:00
Michiharu Ariza
30b781f20a
Merge branch 'master' into cff-retain-gids
2019-02-01 14:50:34 -08:00
Michiharu Ariza
c12862657f
added desubroutinize & retain-gids full test cases with CFF fonts
...
and CFF retain-gids fixes
2019-02-01 14:50:01 -08:00
Michiharu Ariza
f2908b4d8f
Implement subset --regain-gids option with CFF1/2
...
along with api tests & expected results
2019-01-31 14:16:37 -08:00
Behdad Esfahbod
1e06282105
Adjust hb_is_signed<>
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1535
2019-01-31 13:57:17 -08:00
Behdad Esfahbod
21ea1c9152
Remove stale comment
2019-01-31 13:57:17 -08:00
Michiharu Ariza
9f80eb0177
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-31 12:54:36 -08:00
Behdad Esfahbod
2d940946d5
[iter] Fix mystery crash
...
Fuzzer caught it:
==14==ERROR: AddressSanitizer: stack-use-after-return on address 0x7fca2ed7a3e0 at pc 0x0000006057aa bp 0x7ffc3290f1d0 sp 0x7ffc3290f1c8
READ of size 4 at 0x7fca2ed7a3e0 thread T0
SCARINESS: 55 (4-byte-read-stack-use-after-return)
#0 0x6057a9 in OT::SingleSubstFormat2::subset(hb_subset_context_t*) const /src/harfbuzz/src/./hb-ot-layout-gsub-table.hh:194:40
#1 0x5ff921 in hb_subset_context_t::return_t OT::SingleSubst::dispatch<hb_subset_context_t>(hb_subset_context_t*) const /src/harfbuzz/src/./hb-ot-layout-gsub-table.hh:256:13
I can't reproduce locally, but many of the bots are failing because of this
as well.
It's a pity that operator-> must return pointer. Ugh. Why?!
2019-01-30 16:03:16 -08:00
Behdad Esfahbod
cbe2118c58
Merge branch 'master' into iter
2019-01-30 15:07:09 -08:00
Behdad Esfahbod
7c292c0853
[iter] Warning fix
...
Not sure why I don't get it, but this warning:
warning: base class ‘struct hb_iter_fallback_mixin_t<hb_array_t<const OT::UVSMapping>, const OT::UVSMapping&>’ should be explicitly initialized in the copy constructor [-Wextra]
2019-01-30 14:54:23 -08:00
Behdad Esfahbod
d983c529b6
Merge pull request #1564 from googlefonts/retain_gids
...
[subset] Add --retain-gids option to the subsetter.
2019-01-30 17:17:59 -05:00
Behdad Esfahbod
55d1d7c8bc
2.3.1
2019-01-30 13:54:15 -08:00
Behdad Esfahbod
e799004e9f
[iter] Whitespace
2019-01-29 17:15:12 -08:00
Behdad Esfahbod
849a0f1758
[iter] Add hb_iter_with_fallback_t instead
2019-01-29 17:10:19 -08:00
Behdad Esfahbod
4d40ed9d1a
[iter] Add hb_iter_with_mixin_t<>
2019-01-29 13:55:23 -08:00
Behdad Esfahbod
6521d5b201
[iter] Export operator << / >>
2019-01-29 13:44:39 -08:00
Behdad Esfahbod
84a25d79c6
[iter] Rename
2019-01-29 13:39:19 -08:00
Garret Rieger
198859bb37
[subset] For retain gids don't truncate glyphs past the highest requested subset glyph.
2019-01-29 13:19:21 -08:00
Garret Rieger
05e99c86ba
[subset] A few small fixes for the new subset plan api.
2019-01-29 13:19:21 -08:00
Garret Rieger
bdbe047d6c
[subset] Update hb-subset-plan.cc to match hb-subset-plan.hh.
2019-01-29 13:19:21 -08:00
Garret Rieger
74c44ffeba
[subset] Update hb-subset-glyf.cc to use new hb-subset-plan API.
2019-01-29 13:19:21 -08:00
Garret Rieger
4842294b86
[subset] Update gsub to use glyphset() method of subset plan.
2019-01-29 13:19:21 -08:00
Garret Rieger
853b1f1aa5
[subset] Correct maxp num glyph's to use new subset plan method.
2019-01-29 13:19:21 -08:00
Garret Rieger
846e05a298
[subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
2019-01-29 13:19:21 -08:00
Garret Rieger
03e88eab5c
Re-implement HMTX/VMTX subsetting. Update it to support glyph renumbering and simplify the implementation.
2019-01-29 13:19:21 -08:00
Garret Rieger
925be29223
Update hb-ot-vorg-table and hb-ot-layout-common to use the updated subset plan api.
2019-01-29 13:19:21 -08:00
Garret Rieger
4af3be6ef8
Remove glyph array from subset plan, make num_glyphs and glyphset private.
2019-01-29 13:19:21 -08:00
Garret Rieger
23f364429d
[subset] Fix hdmx subsetting when retain gids is enabled.
2019-01-29 13:19:21 -08:00
Garret Rieger
2da1654aef
[subset] Compute num_glyphs during subset plan construction.
...
Update maxp to use the correct num glyphs.
2019-01-29 13:19:21 -08:00
Garret Rieger
96b038f375
[subset] fix failure to init instruction ranges values for an invalid glyph.
2019-01-29 13:19:21 -08:00
Garret Rieger
4b1ac3a2fa
[subset] Do some refactoring in hb-subset-glyf.cc.
...
- Extract code out into helper methods in several places.
- Bundle loca address, size and is short into a struct.
2019-01-29 13:19:21 -08:00
Garret Rieger
b7f971884e
Add retain_gids option to subset input. Update glyf and loca handling to respect retain_gids.
2019-01-29 13:19:21 -08:00
Michiharu Ariza
b379900755
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-29 12:19:57 -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
a30e13469e
[iter] Add operator << to set / vector
2019-01-28 16:39:01 -05:00
Behdad Esfahbod
d438e61042
[iter] Fix operator() impls
2019-01-28 16:34:04 -05:00
Behdad Esfahbod
57795bc8dd
[iter] Add operator>> and operator<<
2019-01-28 16:23:12 -05:00
Behdad Esfahbod
8bd96be994
[iter] Use auto c = C.iter() internally
2019-01-28 16:17:36 -05:00
Behdad Esfahbod
073fa4ac5a
Merge branch 'master' into iter
2019-01-28 14:35:41 -05:00
Behdad Esfahbod
9a1df82e3f
[uniscribe] Whitelist function type cast
2019-01-28 14:15:18 -05:00
Behdad Esfahbod
6e1c3eaf70
Fix sign comparison error
2019-01-28 14:12:41 -05:00
Behdad Esfahbod
9db7a7da63
Fix warning
...
c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146: unary minus operator applied to unsigned type, result still unsigned [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
2019-01-28 14:09:59 -05:00
Behdad Esfahbod
51b584880e
[pragma] Silence MSVC unknown-pragma warning
2019-01-28 14:09:45 -05:00
Behdad Esfahbod
d592bd16cd
Try fixing MSVC build
2019-01-28 13:41:40 -05:00
Behdad Esfahbod
0363ce650b
[iter] Accept C arrays in hb_iter()
2019-01-27 01:06:32 +01:00
Behdad Esfahbod
b62e7f9223
[test] Test unary operator+
...
"Test" as in compiles..
2019-01-27 00:51:57 +01:00
Behdad Esfahbod
778c96b8d7
[iter] Fix hb_iter()
2019-01-27 00:50:54 +01:00
Behdad Esfahbod
2f5b1a9104
[iter] Add unary operator+ that returns a copy
2019-01-27 00:49:37 +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
2aff6d9625
[iter] Test that default-constructed iterators are empty
2019-01-26 22:54:25 +01:00
Behdad Esfahbod
f35e7eabf1
pragma GCC diagnostic error "-Winjected-class-name"
...
See 6b6783e158
2019-01-26 22:50:00 +01:00
Behdad Esfahbod
509353357c
[iter] Use hb_declval() instead of Null() to get instance
...
I had used Null to make one of the bots happy before. Not going
to bend to such demands anymore..
2019-01-26 22:47:35 +01:00
Behdad Esfahbod
6b6783e158
[iter/meta] Fix build on newer clang
...
The mystery failure had to do with SFINAE failure because the template
function involved was accessing ::iter_t of a type that was also named iter_t.
In this context, apparently:
warning: ISO C++ specifies that qualified reference to 'iter_t' is a
constructor name rather than a type in this context, despite preceding 'typename' keyword
[-Winjected-class-name]
We use a new macro, also called hb_iter_t(), to get iterator type of
a type. This uses declval/hb_decltype, and has the added benefit
that it returns correct type for const vs non-const objects, if they
have different iterators.
2019-01-26 22:44:09 +01:00
Behdad Esfahbod
5adb113baf
[meta] Mark function-objects as const
2019-01-26 22:15:59 +01:00
Behdad Esfahbod
ac90f17c55
Merge branch 'master' into iter
2019-01-26 14:05:39 +01:00
Behdad Esfahbod
60022ecced
Fix -Wcast-function-type warnings in util/ with gcc 4.8
2019-01-26 14:04:51 +01:00
Behdad Esfahbod
f398097529
More static constexpr
2019-01-25 16:08:25 +01:00
Behdad Esfahbod
090fe56dc6
Merge branch 'master' into iter
2019-01-25 16:06:52 +01:00
Michiharu Ariza
c685644386
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-24 13:19:18 -08:00
Behdad Esfahbod
e970de48bc
[AAT] Minor sign
2019-01-24 18:16:17 +01:00
Behdad Esfahbod
a371a28cda
[AAT] Use a ring buffer for ligature stack
...
I think Apple does very similarly, but probably with a stack size of 16.
We do it with a stack size that is currently set to 64.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
2019-01-24 18:12:25 +01:00
Behdad Esfahbod
7886b1578f
Whitespace
2019-01-24 18:06:17 +01:00
Behdad Esfahbod
b976940243
[AAT] Handle transition errors during machine operation
...
Before we used to give up. Now, just ignore error and continue processing.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1531
2019-01-24 18:01:07 +01:00
Michiharu Ariza
0bd0a3311c
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-24 08:53:28 -08:00
Behdad Esfahbod
e234bb6a42
[AAT] Ignore machine errors and continue
2019-01-24 17:23:11 +01:00
Behdad Esfahbod
1ec90514f6
[AAT] Minor
2019-01-24 17:21:41 +01:00
Behdad Esfahbod
299eca0c3b
[AAT] Handle out-of-bounds classes
2019-01-24 17:17:00 +01:00
Behdad Esfahbod
c4623db4a3
[AAT] Minor
2019-01-24 17:10:12 +01:00
Behdad Esfahbod
c4e36f97b6
[AAT] Minor
2019-01-24 17:06:16 +01:00
Behdad Esfahbod
f60282c5bf
More pragma control
...
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=924848
2019-01-24 16:29:09 +01:00
Behdad Esfahbod
fd0889f903
Comment
2019-01-24 16:12:52 +01:00
Behdad Esfahbod
9f31417733
Form cluster for Emoji sub-region tag sequences
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1556
2019-01-24 16:08:33 +01:00
Behdad Esfahbod
3ecda71041
Adjust mark offsets when zeroing from fallback mark positioning code
...
Adjust tests.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1532
2019-01-24 12:28:24 +01:00
Michiharu Ariza
12cd3171ba
Merge branch 'master' into cff-more-arrayof-fixes
2019-01-23 14:05:42 -08:00
Michiharu Ariza
261a742181
more rewriting with ArrayOf<>
...
CFF1 Encoding0, Encoding1, CFF1SuppEncData
2019-01-23 14:04:29 -08:00
Behdad Esfahbod
36fb2b4da9
[AAT] In InsertionChain, set mark to previous-position if inserting
...
Fixes MORX-31
2019-01-23 20:53:57 +01:00
Behdad Esfahbod
baf4d6a68a
[AAT] Remove mark_set from InsertionChain
2019-01-23 20:36:07 +01:00
Behdad Esfahbod
0b2fa342de
More of previous
2019-01-22 16:36:00 +01:00
Behdad Esfahbod
a5e5dd8b42
Fix sign-compare error resulted from promoting unsigned integers to signed larger ints
...
Clang and gcc know not to warn in these cases, but not nonmainstream compilers
2019-01-22 16:30:07 +01:00
Behdad Esfahbod
32379bbf10
Cast HB_UNTAG results to uint8_t
2019-01-22 12:55:29 +01:00
Behdad Esfahbod
83d4aa5ca9
More -Wcast-error fix
2019-01-22 12:52:23 +01:00
Behdad Esfahbod
447323b85a
Better fix for -Wcast-align errors
2019-01-22 12:50:12 +01:00
Behdad Esfahbod
81ec543d80
More -Wcast-error fixes
2019-01-22 12:43:12 +01:00
Behdad Esfahbod
9077272549
pragma GCC diagnostic error "-Wsign-compare"
2019-01-22 12:40:18 +01:00
Behdad Esfahbod
8d05bf7dc0
Fix cast-align error
...
If compiler doesn't inline StructAtOffset, this was an error since we
only disable cast-align at call-site. So, move the cast out.
../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:146:85: required from here
../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:147:79: required from here
../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-01-22 12:34:05 +01:00
Behdad Esfahbod
70a52d6bd8
Convert all other enum class consts to static constexpr
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
5d4b0377b9
Convert unsigned enum class consts to static constexpr
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
ef00654962
Convert tag enum class consts to static constexpr
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
39e1b6d03f
Convert boolean enum class consts to static constexpr
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1553
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
271cb7c1c0
Make some enum constants unsigned
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
3d9a6e6266
Whitespace
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
c81f02fd06
pragma GCC diagnostic error "-Wvla"
2019-01-22 12:17:26 +01:00
Behdad Esfahbod
380c3cffb9
Use enum for class constant
2019-01-22 10:51:20 +01:00
Behdad Esfahbod
6d042a18e7
[CFF] Use enum for tableTag
2019-01-22 10:51:20 +01:00
Behdad Esfahbod
c1cbbb9459
Use static constexpr for large class constants
2019-01-22 10:51:20 +01:00
Behdad Esfahbod
21c0713a1c
Whitespace
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
934d3fa2a7
Use more iter pipelines
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
420d8ac350
[algs] Add hb_iter()
...
Makes it nicer in pipelines.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
54ec48ea20
Use iter pipelines more
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
f4cbb1ee0c
WIP
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
471e96e55d
[iter] Use forwarding references
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
343f5a4bfc
[iter] Misc fixes to get piping almost work
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
f35568d603
[iter] Add hb_filter()
...
Untested.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
1733e4702c
[iter] Add hb_map()
...
Untested.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f7fcc47641
[iter] Make hb_zip() take const references
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ede1a71b31
Minor rename
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
93551669c5
Remove unused Coverage::iter_t::get_coverage()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
af2067e87b
Use hb_zip() moooore
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
0d1fdf939d
Use hb_zip() some mooore
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
af6c190235
Use hb_zip() some moore
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
83ad0b6d0f
Use hb_zip() some more
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f0dd0656b8
Use hb_zip() some
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
200cdb721b
[iter] Rename hb_zip_t to hb_zip_iter_t
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3290c181c1
[algs] Whitespace
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
014c50292b
[iter] Move code
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
Behdad Esfahbod
f27607580e
[algs] Add hb_first() and hb_second()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a7de144df3
Implement uniform map interface
...
Coverage, ClassDef, hb_set_t, and hb_map_t implement.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7987095e64
[meta] Remove hb_enable_if_t
...
It was only used for C++<11 which does not allow default parameters
in function templates. Looks like we cannot support <11 anyway, so,
start cleaning up.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
15a6928436
[iter] Implement operator-> unconditionally
...
The right condition to check for would have been "is_struct", which
we don't have.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8f52a827e7
Allow rvalues in hb_addressof()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a4ea0d3680
[iter] Change from const_iter_t/iter_t to iter_t/writer_t
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7798e4fcc3
[iter] Change Coverage iterator to only return glyph-id
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
84e5d00229
[iter] Add hb_zip()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
636786ecaf
[iter] Rename __item_type__ to __item_t__
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6caf76f4a8
Tighten Coverage iteration
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ff3a7ce1e7
[subset] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
42bf80e578
[iter] More semicolon
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f78f837ef1
[iter] Use aliasing using for types
...
Fix ambiguity of hb_sorted_array_t::item_t with gcc. No idea if that's a gcc bug
or what spec requires, but using aliasing using seems to fix it. It probably breaks
our non-C++11 bots, in which case I have to condition the change. Testing.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3fc03e42ce
[iter] Use static_assert with hb_is_random_access_iterator()
...
Both, checks constexpr'ness, and fixes build with cra**y implementations
of assert() macro:
test-iter.cc:108:11: error: too many arguments provided to function-like macro invocation
assert (hb_is_random_access_iterator (array_iter_t<int>));
^
./hb-iter.hh:186:42: note: expanded from macro 'hb_is_random_access_iterator'
hb_is_random_access_iterator_of (Iter, typename Iter::item_t)
^
/usr/include/x86_64-linux-gnu/sys/cdefs.h:89:9: note: macro '__STRING' defined here
\#define __STRING(x) #x
^
test-iter.cc:108:3: error: use of undeclared identifier '__STRING'
assert (hb_is_random_access_iterator (array_iter_t<int>));
^
/usr/include/assert.h:91:21: note: expanded from macro 'assert'
: __assert_fail (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION))
^
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6af9c5f18e
[iter] Remove stray semicolons
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
74ca7b580c
[OT] Implement operator[] for Coverage and ClassDef
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6c548b6657
[iter] Add TODO
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
362d4e7cc3
[iter] Implement for OT::ArrayOf / OT::SortedArrayOf
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2f837a365c
[SortedArrayOf] Fix sub_array() return type
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
54c30e949e
[iter] Constrain hb_fill() and hb_copy()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
dc0a98cbe7
[iter] Add TODO
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2658e40ffb
[iter] Add hb_is_random_access_iterator()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
445364d80a
[iter] Rename hb_is_[sorted_]iterator() -> hb_is_[sorted_]iterator_of()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a6c013b1bf
[meta] Add hb_declval() macro
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
adc5910a63
[iter] Syntax
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ca6adcd1ad
[iter] Test hb_is_iterable / hb_is_iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8237809f06
[serialize] Make SortedArrayOf:;serialize() take sorted-iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
47333c8a30
[iter] Fix operator->
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
177a8af380
[array] SFINAE fun
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8414f16787
[meta] Rename
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8e0a58e1b3
[array] Remove construction that was removing constness
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
85969e357a
[iter] Fix test
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
da49961836
[iter] Remove comment
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
815cde9fa3
[iter] Use is_sorted_iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
ed4336680d
[iter] Handhold hb_is_iterator() type deduction
...
by partial-instantiating on Iter.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
cb5011d364
Revert "[iter] Add hb_iter_of_t<>"
...
This reverts commit d6cbe96e2fc7bc8f1c10e631b52b1ef31ff9a6f5.
Isn't useful, as duplicate inheritance of same type results in ambiguity
errors...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
c132cda9d9
[iter] Fix warnings
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
c9d8a07e30
[iter] Add hb_iter_of_t<>
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
b5d6fe1a45
[iter] Remove hb_sorted_iter_t
...
Not enforcing it using type hierarchy.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
255085bd59
[iter] Const correctness
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
415f3f4320
Add operator= to IntType, commented out
...
https://github.com/harfbuzz/harfbuzz/pull/1510
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
183be8f452
[iter] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6cd96ba1ac
[iter] Make is_random_access_iterator a constant
...
We cannot rely on constexpr functions...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a685bfe8fc
Separate GlyphID from HBUINT16
...
For stricter enforcement.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8ac64d0090
[iter] Fix sorted_iter iter class
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
93615b9598
[iter/meta] Add hb_is_sorted_iterator()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
92f25db1e8
[iter] Remove stale comment
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
40c24fd4a6
[iter] Port Coverage towards iter_t instead of array_t specifics
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
d552b6818c
[meta] Move typename around
...
We'll see if bots like.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f64ea8fc65
[meta] Move code around
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
aa2ab4f061
[iter] WHitespace
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
851fbb23ea
[iter] Port Coverage::serialize to hb_is_iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
06a44e2e53
[iter/meta] Match hb_is_iterator<> using SFINAE
...
By specifying Item type, which is desirable.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
bcb913efb4
Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
859a880b08
[iter] Add back operator +
...
Too ugly to remove..
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
076faf7c18
[iter] Disable operator +
...
To see if it makes bots happy... This is frustrating.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
a46874f1ab
[iter] Revert back uses of C++11 auto type deduction
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
0828db8444
[iter] Rename
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
037f735efd
[iter] Remove friend operator +, hoping to fix some bots
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
cb27918d0a
Use Null() instead of declval(), hoping to fix some bots
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3d22900f62
[meta] Don't use template default arguments for functions
...
That's a C++11 extension apparently...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
b89d20dd9f
[meta] Fix unused-function-template warning
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
df138da2e6
[iter/meta] Implement is_iterator
...
Removes use of auto type deduction again, which was not supported on many bots.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8570da1d74
[meta] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
442f4a5891
[meta] Move more code here
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8c6cbbdfa3
[iter/meta] Add hb_is_iterable
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
576d5e2420
Don't use delegating constructors
...
Not all C++11 features are created equal when it comes to support...
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
e32bf39766
[meta] Add enable_if
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
e76a3cae0f
Add hb-meta.hh for meta-programming
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
5ec11ce13a
[iter] Clarify readonly vs lvalue iterators
...
lvalue iterators must declare __item_type__ as a reference.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2cbf5bf3a9
[iter] Test OT::Coverage iter
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
fd75d29f0f
[iter] Streamline vector iterators
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
570473a345
[iter] Make hb_sorted_array_t work as iter
...
Ugly, but does the job.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
d6024794fb
Change hb_void_t implementation
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
cde31988c2
[iter] Mark Coverage iterator sorted
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
49161d411f
[subset] Take iterator in ArrayOf serialize
...
Still not satisfied with how I can enforce iterators only, but
seems to work for now.
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
e16884248f
[iter] Port Coverage iterator to hb_iter_t
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
c68bca0f95
Add hb_pair_t<> and hb_pair()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
8303a9b011
[Coverage] Ensure increasing coverage in iteration
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
50cd26d394
[Coverage] Mark iterator methods const
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
9df1a6eba7
[iter] Use operator bool in a few places
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
7788ac14a4
[iter] Remove redundant methods
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
3dea9affda
[iter] Test default-constructability
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
743ff09368
[iter] Implement friend opeator + (int, iter)
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
6dc4a1c9b1
[iter] Remove const_iter
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
f2b56af3ef
[iter] Remove hack for older compilers
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2ea79e0340
[iter] Minor
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
fb053b6333
[iter] Rename random_access() to constexpr is_random_access()
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
2790aad28c
[iter] Add operator ->
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
d3976b7e63
[iter] Make them work, mostly
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
959bb58bdd
[vector] Add iterator
2019-01-20 20:12:12 -05:00
Behdad Esfahbod
dd7c628ed1
Use enum for class constant
2019-01-20 19:51:08 -05:00
Behdad Esfahbod
cf7edf52c3
[CFF] Use enum for tableTag
2019-01-20 19:49:59 -05:00
Behdad Esfahbod
bd1318b8cc
Use static constexpr for large class constants
2019-01-20 19:47:52 -05:00
Behdad Esfahbod
043b610fa6
Fix sign compare warnings
...
../../third_party/harfbuzz-ng/src/src/hb-map.hh(56,45): warning: comparison of integers of different signs: 'const hb_codepoint_t' (aka 'const unsigned int') and 'hb_map_t::(anonymous enum at ../../third_party/harfbuzz-ng/src/src/hb-map.hh:169:3)' [-Wsign-compare]
bool is_unused () const { return key == INVALID; }
2019-01-19 09:21:33 -05:00
Behdad Esfahbod
ce317d0320
Fix warning
...
warning: '_WIN64' is not defined, evaluates to 0 [-Wundef]
2019-01-19 09:21:33 -05:00
Ebrahim Byagowi
0c2bd1b160
[dwrite] Fix delete-non-virtual-dtor warning ( #1550 )
2019-01-19 16:30:07 +03:30
Behdad Esfahbod
89bcfb204c
Remove TRACE_COLLECT_GLYPHS
2019-01-18 14:59:18 -05:00
Behdad Esfahbod
f13b6786f0
[pragma] Only add if GCC or clang
2019-01-18 14:53:54 -05:00
Behdad Esfahbod
c2ea7a9da4
[directwrite] More fix
2019-01-18 14:20:45 -05:00
Ebrahim Byagowi
9714d3ec5c
[dwrite] Try to fix delete-non-virtual-dtor warnings
...
Fixes #1548 hopefully
2019-01-18 21:55:21 +03:30
Behdad Esfahbod
0772c06f96
Remove tracing from closure
2019-01-18 12:53:47 -05:00
Behdad Esfahbod
d9f6be3a61
Fix -Wundef errors with __GNUC__
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1549
2019-01-18 12:53:47 -05:00
Michiharu Ariza
28917e58f9
init interp_env_t::hintmask_size
...
fixes issue #1547
2019-01-18 09:43:51 -08:00
Behdad Esfahbod
9b4e51b2e4
[pragma] Enable error -Wdelete-non-virtual-dtor
...
Currently fails directwrite backend.
2019-01-18 12:23:02 -05:00
Behdad Esfahbod
e65272281c
[directwrite] Fix error
...
hb-directwrite.cc: In constructor 'TextAnalysis::TextAnalysis(const wchar_t*, uint32_t, const wchar_t*, DWRITE_READING_DIRECTION)':
hb-directwrite.cc:489:18: error: 'TextAnalysis::mText' will be initialized after [-Werror=reorder]
const wchar_t* mText;
^~~~~
hb-directwrite.cc:488:12: error: 'uint32_t TextAnalysis::mTextLength' [-Werror=reorder]
uint32_t mTextLength;
^~~~~~~~~~~
hb-directwrite.cc:282:3: error: when initialized here [-Werror=reorder]
TextAnalysis (const wchar_t* text, uint32_t textLength,
^~~~~~~~~~~~
hb-directwrite.cc: In function 'hb_bool_t _hb_directwrite_shape_full(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, float)':
2019-01-18 12:22:07 -05:00
Behdad Esfahbod
b900f78088
[pragma] More cast-align whitelist
2019-01-18 10:08:23 -05:00
Behdad Esfahbod
0d8b931bbe
[pragma] Allow cast-align in hb-font.cc
...
../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:144:85: required from here
../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<const Type*> ((const char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]':
../src/hb-font.cc:145:79: required from here
../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align]
{ return * reinterpret_cast<Type*> ((char *) P + offset); }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = int]':
2019-01-18 10:03:43 -05:00
Behdad Esfahbod
a25174a56b
[pragma] GCC diagnostic error "-Wreorder"
2019-01-18 09:59:36 -05:00
Behdad Esfahbod
4660090569
[pragma] GCC diagnostic warning "-Wmaybe-uninitialized"
2019-01-18 09:53:16 -05:00
Behdad Esfahbod
7a634d7d5b
[pragma] Massage more
2019-01-18 09:49:14 -05:00
Behdad Esfahbod
16e5ba85b1
[pragma] More
2019-01-18 09:46:17 -05:00
Behdad Esfahbod
2bd530d598
[pragma] Reorg again
...
https://github.com/harfbuzz/harfbuzz/issues/1546
2019-01-18 09:28:22 -05:00
Behdad Esfahbod
c04272fac8
[pragma] GCC diagnostic ignored "-Wunknown-warning-option"
...
Try at fixing https://github.com/harfbuzz/harfbuzz/issues/1546
2019-01-18 08:49:45 -05:00
Behdad Esfahbod
4d3c8f9685
[uniscribe] More warnings
2019-01-17 19:58:54 -05:00
Behdad Esfahbod
6a5d2b21d8
[uniscribe] Fix warnings
2019-01-17 19:57:17 -05:00
Behdad Esfahbod
5b13e458c3
Fix build
2019-01-17 19:52:32 -05:00
Behdad Esfahbod
a77bd6bb89
[pragma] GCC diagnostic ignored "-Wclass-memaccess"
2019-01-17 19:33:41 -05:00
Behdad Esfahbod
436c7b294a
[pragma] ignored -Wunsafe-loop-optimizations // TODO fix
2019-01-17 19:03:33 -05:00
Behdad Esfahbod
e3b3181e9d
[pragma] error -Wclass-memaccess
2019-01-17 19:02:06 -05:00
Behdad Esfahbod
1a6b97a491
[pragma] More
2019-01-17 18:55:03 -05:00
Behdad Esfahbod
06e8091661
[pragma] More
2019-01-17 18:47:32 -05:00
Behdad Esfahbod
1077e40bf1
[pragma] Flesh out more
2019-01-17 18:36:10 -05:00
Behdad Esfahbod
7e6bd510fc
Use NNOffsetTo<> in rest of places
2019-01-17 18:24:18 -05:00
Behdad Esfahbod
b1152d5e66
Use NNOffsetTo<>
2019-01-17 18:17:04 -05:00
Behdad Esfahbod
205d72a198
Add NNOffsetTo<>
2019-01-17 18:10:38 -05:00
Behdad Esfahbod
c99d13d860
[AAT] Comment
2019-01-17 17:56:27 -05:00
Behdad Esfahbod
f39b5603ff
Comment
2019-01-17 17:50:01 -05:00
Behdad Esfahbod
347ad454b8
[AAT] Remove unused code
2019-01-17 17:47:29 -05:00
Behdad Esfahbod
b344d4385a
[AAT] Allow null in ankr lookupTable offset
2019-01-17 17:44:39 -05:00
Behdad Esfahbod
14a560a245
[pragma GCC] Ignore -Wtype-limits
2019-01-17 17:42:44 -05:00
Behdad Esfahbod
3f2daae630
More GCC pragmas
2019-01-17 15:27:31 -05:00
Behdad Esfahbod
d6c5473e1f
Rename macro
2019-01-17 15:22:46 -05:00
Behdad Esfahbod
a9946b7cfe
Add more GCC warning pragmas
2019-01-17 15:22:28 -05:00
Behdad Esfahbod
868b0c0c2e
Move -Wcast-align to hb.hh
2019-01-17 15:18:18 -05:00
Behdad Esfahbod
8874eef8ff
Add pragram GCC diagnostic ignored "-Wunused-macros"
2019-01-17 15:04:44 -05:00
Behdad Esfahbod
cc8e9a436f
[AAT] Fully sanitize ankr table at sanitize time
...
Third try to fix access. Followup 6879efc2c1
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303
2019-01-17 14:55:05 -05:00
Behdad Esfahbod
6879efc2c1
[AAT] Fix anchor bound checking, again
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303
2019-01-17 14:08:02 -05:00
Behdad Esfahbod
a262eb3d0b
[aat] Minor
2019-01-17 14:06:32 -05:00
Behdad Esfahbod
c986ca15a6
Improve overflow avoidance
...
Better fix for 480406cd3e
This way we behave the same on 32bit and 64bit archs.
2019-01-15 13:58:19 -05:00
Tor Arne Vestbø
f401f85a5a
Remove assumption about Core Text working in 96 DPI
...
Core Text doesn't actually have a concept of DPI internally, as it
doesn't rasterize anything by itself, it just generates vector paths
that get passed along to Core Graphics.
In practice this means Core Text operates in the classical macOS
logical DPI of 72, with one typographic point corresponding to one
point in the Core Graphics coordinate system, which for a normal
bitmap context then corresponds to one pixel -- or two pixels for
a "retina" context with a 2x scale transform.
Scaling the font point sizes given to HarfBuzz to an assumed DPI
of 96 is problematic with this in mind, as fonts with optical
features such as 'trak' tables for tracking, or color glyphs,
will then base the metrics off of the wrong point size compared
to what the client asked for.
This in turn causes mismatches between the metrics of the shaped
text and the actual rasterization, which doesn't include the 72
to 96 DPI scaling.
If a 96 DPI is needed, such as on the Web, the scaling should be
done outside of HarfBuzz, allowing the client to keep the DPI of
the shaping in sync with the rasterization.
The recommended way to do that is by scaling the font point size,
not by applying a transform to the target Core Graphics context,
to let Core Text choose the right optical features of the target
point size, as described in WWDC 2015 session 804:
https://developer.apple.com/videos/play/wwdc2015/804/
2019-01-15 13:26:35 +01:00
Behdad Esfahbod
0d2727f4fe
fix FDSelect fuzzing bug ( #1539 )
...
Rewrote struct FDSelect3_4.ranges as ArrayOf
Updated FDSelect3_4::sanitize () to call ranges.sanitize ()
nRanges now a function to return a reference to ranges.len
2019-01-14 18:23:17 -08:00
Behdad Esfahbod
9f6172d669
Move _POSIX_SOURCE definition
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1308
2019-01-14 20:45:31 -05:00
Behdad Esfahbod
480406cd3e
Fix assertion on address overflow
...
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=917031
2019-01-14 15:27:34 -05:00
Behdad Esfahbod
7a6686a589
[AAT] Fix mort ContextualSubtable offset access
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12312
2019-01-14 15:09:14 -05:00
Behdad Esfahbod
a3fa7d3336
[AAT] Fix ankr table access
...
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=918340
2019-01-14 14:37:36 -05:00
Michiharu Ariza
760303d411
deleted a duplicate fontdicts_mod.fini() call ( #1538 )
2019-01-11 15:27:35 -08:00
Michiharu Ariza
7b48641aa8
fix leak in subset_enc_supp_codes ( #1537 )
...
oss-fuzz issue 12310
2019-01-08 15:37:48 -05:00
Ebrahim Byagowi
97f67a3c3d
[ci] Enable more of GCC compile warnings ( #1533 )
2019-01-04 23:10:39 +03:30
cclauss
26c5b54fb0
CircleCI: Test for Python 3 syntax errors and undefined names ( #1522 )
...
Catch missing imports and errors like #1520 and #1521
__E901,E999,F821,F822,F823__ are the "_showstopper_" [flake8](http://flake8.pycqa.org ) issues that can halt the runtime with a SyntaxError, NameError, etc. Most other flake8 issues are merely "style violations" -- useful for readability but they do not effect runtime safety.
* F821: undefined name `name`
* F822: undefined name `name` in `__all__`
* F823: local variable name referenced before assignment
* E901: SyntaxError or IndentationError
* E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree
2018-12-31 07:00:43 +03:30
cclauss
f4da28b1f1
Python 3 fixes to gen-os2-unicode-ranges.py ( #1521 )
...
In Python 3, __reload()__ was moved and __sys.setdefaultencoding()__ because the default is already utf-8. Also __Error()__ is an _undefined name_ and __Exception()__ creates a generic exception.
2018-12-30 15:28:34 +03:30
Behdad Esfahbod
d092fb2719
Ouch! Fix build on C++<11
2018-12-30 01:53:03 -05:00
Behdad Esfahbod
89949ed28d
Fix ubsan with passing nullptr to qsort()
2018-12-30 01:52:19 -05:00
Behdad Esfahbod
357a0a7ad3
Fix build on C++ < 11
2018-12-27 18:29:23 -05:00
Behdad Esfahbod
54c0a17310
[vector] Fix warning
2018-12-27 18:28:07 -05:00
Behdad Esfahbod
1043ddbee8
[aat] Minor
2018-12-27 18:27:11 -05:00
Behdad Esfahbod
71da9ca62f
[vector] Remove use of arrayZ() by using casts
2018-12-27 18:01:06 -05:00
Behdad Esfahbod
fa333e34d6
[vector] Remove static_array
...
Was good idea, but with C++ types with constructor/destructor, was getting in
the way as compiler was destructing those items where it was not desired.
Since C++ does not allow zero-sized arrays, just remove it...
2018-12-27 17:56:22 -05:00
Behdad Esfahbod
ab2258a419
[vector] Use allocated = -1 to signify failure
2018-12-27 17:45:05 -05:00
Michiharu Ariza
09fa536d89
fix lealk with cff2::accelerator_templ_t::topDict ( #1517 )
2018-12-27 11:33:09 -05:00
Behdad Esfahbod
3b81442cd5
[vector] Change pre-alloced count from 8 to 2
...
I'm thinking about dropping it to zero, but that needs slight code changes.
2018-12-24 11:31:04 -05:00
Behdad Esfahbod
d25a2f1496
Fix a few warnings
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
85003b594b
[iter] Fix warning
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
e4355b1ca1
[set] Add iter_t as alias to const_iter_t
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
33f8de6186
[set] Change to const_iter
2018-12-23 20:34:24 -05:00
Behdad Esfahbod
f88fed5cd8
[set] Cache length in iterator
2018-12-23 20:34:24 -05:00
Ebrahim Byagowi
d0a706c7fd
Minor, remove redundant inline
2018-12-22 20:07:57 +03:30
Ebrahim Byagowi
ae6e348d64
Minor, tweak spaces
2018-12-22 20:07:57 +03:30
Michiharu Ariza
29f0b6bce7
CFF renaming ( #1507 )
...
* reimplement ByteStr as byte_str_t based on hb_ubytes_t
Unuse start_embed<ByteStr>
Also renamed SubByteStr to byte_str_ref_t
More renaming to come
* substr renamed to str_ref in line with its type byte_str_ref_t
* uncamelize non-table struct names
* uncamelized non-struct types OpCode etc
* add byte_str_t copy ctor
* test
* test2
* undo tests
* fix bot failure
* undo the previous change
* fixed tabs, added inline
* Revert "fixed tabs, added inline"
This reverts commit 21163c30e9
.
* fix tabs
2018-12-22 10:47:04 -05:00
Behdad Esfahbod
89d04129e2
[set] Actually derive iterator from hb_sorted_iter_t<>
2018-12-21 20:07:52 -05:00
Behdad Esfahbod
fc35919d01
[set] Implement unified iterator
2018-12-21 20:06:17 -05:00
Behdad Esfahbod
4911e67d2d
[set] Mark some internals protected
2018-12-21 20:00:52 -05:00
Behdad Esfahbod
954b985422
[iter] Add hb_sorted_iter_t<>
2018-12-21 19:55:02 -05:00
Behdad Esfahbod
b205105c9e
[iter] Change operator[] operand to be signed
...
To fix older compilers again (this was the case in hb_array_t).
hb-ot-layout-common.hh:1353: note: candidate 2: operator[](T*, int) <built-in>
hb-ot-layout-common.hh:1354: 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-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter, Item>::operator[](unsigned int) const [with Iter = hb_array_t<const OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short unsigned int, 2u>]
hb-ot-layout-common.hh:1354: note: candidate 2: operator[](T*, int) <built-in>
hb-ot-layout-common.hh: In member function 'bool OT::ClassDef::serialize(hb_serialize_context_t*, hb_array_t<const OT::IntType<short unsigned int, 2u> >, hb_array_t<const OT::IntType<short unsigned int, 2u> >)':
hb-ot-layout-common.hh:1490: 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-iter.hh:63: note: candidate 1: Item& hb_iter_t<Iter, Item>::operator[](unsigned int) const [with Iter = hb_array_t<const OT::IntType<short unsigned int, 2u> >, Item = const OT::IntType<short unsigned int, 2u>]
hb-ot-layout-common.hh:1490: note: candidate 2: operator[](T*, int) <built-in>
2018-12-21 19:48:21 -05:00
Behdad Esfahbod
25786f49c1
[array] Port to hb_iter_t<>
...
hb_array_t is its own iterator...
2018-12-21 19:29:00 -05:00
Behdad Esfahbod
2a33ab0560
[iter] Change __more__ to fallback to __len__
2018-12-21 18:53:01 -05:00
Behdad Esfahbod
474a12058d
[array/vector] Rename len to length
2018-12-21 18:53:01 -05:00
Behdad Esfahbod
2fc1860a5b
[iter] Split hb_iter_t<> into hb_iter_t<> and hb_iter_mixin_t<>
2018-12-21 18:09:45 -05:00
Behdad Esfahbod
865deeb3be
Adjust internal header dependencies
2018-12-21 17:46:10 -05:00
Behdad Esfahbod
8e5c2bc60b
[Makefile.am] Minor
2018-12-21 17:29:11 -05:00
Behdad Esfahbod
f419cef417
[iter] Include from hb.hh
2018-12-21 17:22:09 -05:00
Behdad Esfahbod
7557e34872
[iter] Move hb_fill() and hb_copy() to hb-iter.hh
2018-12-21 17:21:19 -05:00
Behdad Esfahbod
5e1840e031
[iter] Disallow copy-construction or assignment of hb_iter_t<>
...
Should only be done by subclass.
2018-12-21 16:39:57 -05:00
Behdad Esfahbod
65e8bd56ad
[iter] Fix hb_copy() return value
2018-12-21 16:20:30 -05:00
Behdad Esfahbod
40d71211a8
[iter] Add const_iter_t / const_iter()
2018-12-21 16:19:44 -05:00
Behdad Esfahbod
aaddfaa57a
[iter] Make hb_fill() take collection type, not iter
...
Starting to get the hang of when take which.
2018-12-21 16:04:38 -05:00
Behdad Esfahbod
7b4eea853c
[array] Add more hb_array() / hb_sorted_array() variants
2018-12-21 16:02:16 -05:00
Behdad Esfahbod
09740148e3
[serialize] Use component_list by reference, as a supplier
2018-12-21 15:56:01 -05:00
Behdad Esfahbod
3dbe1e364c
[iter] Add .random_access()
2018-12-21 15:53:09 -05:00
Behdad Esfahbod
20f14b4aa6
[iter] Fix __end__()
2018-12-21 15:19:22 -05:00
Behdad Esfahbod
95265aeab7
[array] Remove copy constructor
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1502
2018-12-21 15:12:55 -05:00
Behdad Esfahbod
69d232eaea
Fix bot
...
C:\projects\harfbuzz\src\hb-uniscribe.cc(709): error C2666: 'hb_vector_t<OPENTYPE_FEATURE_RECORD,8>::operator +': 3 overloads have similar conversions [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
2018-12-21 15:08:06 -05:00
Behdad Esfahbod
b9a51f5310
Minor
2018-12-21 15:05:00 -05:00
Behdad Esfahbod
bdb6da7226
[iter] Fix test again
2018-12-21 11:20:27 -05:00
Behdad Esfahbod
e952075248
Minor
2018-12-21 11:15:16 -05:00
Behdad Esfahbod
35503d7d73
[iter] More prototyping
2018-12-21 03:03:46 -05:00
Behdad Esfahbod
73c7a896d1
[iter] Make hb_fill() and hb_copy() take iterators
...
I'm still going back and force...
2018-12-21 02:48:28 -05:00
Behdad Esfahbod
12e506fda4
[iter] Add hb_fill()
2018-12-21 02:47:04 -05:00
Behdad Esfahbod
ad3ed58de5
[iter] Start prototyping hb_copy()
2018-12-21 02:25:58 -05:00
Behdad Esfahbod
44af738d19
[iter] Showcase implicit casts
2018-12-21 01:59:37 -05:00
Behdad Esfahbod
879faa2aee
Rename
2018-12-21 01:57:40 -05:00
Behdad Esfahbod
aeb696a91c
[iter] Rename
2018-12-21 01:57:02 -05:00
Behdad Esfahbod
8001e00a47
[iter] First sample use
2018-12-21 01:53:27 -05:00
Behdad Esfahbod
19d2b5013d
[iter] Add bidirectionality
2018-12-21 01:20:04 -05:00
Behdad Esfahbod
314d8698d0
[iter] Sketch new iterator design
2018-12-21 01:15:49 -05:00
Behdad Esfahbod
f6d5f1e91c
[iter] Add empty test
2018-12-21 00:23:46 -05:00
Behdad Esfahbod
b80b97b549
Revert "Remove unused hb-iter.hh"
...
This reverts commit 969ff3c7aa
.
2018-12-21 00:08:05 -05:00
Behdad Esfahbod
a728c63a98
[vector] Add operator bool
2018-12-20 23:15:49 -05:00
Behdad Esfahbod
bd36977392
Rename
2018-12-20 23:14:24 -05:00
Behdad Esfahbod
e6ebc9b6f8
Remove unused typedef
2018-12-20 23:13:36 -05:00
Behdad Esfahbod
4941e95f10
2.3.0
2018-12-20 21:48:57 -05:00
Behdad Esfahbod
87f7c83fff
[serializer] Add operator <<
...
Not sure if we are going to use it. But might incentivize us to.
2018-12-20 15:54:17 -05:00
Behdad Esfahbod
5b70074edf
Add hb_assign(obj, value)
2018-12-20 15:38:59 -05:00
Behdad Esfahbod
6124123393
[serialize] Adjust ClassDef
...
[skip ci]
2018-12-20 12:26:44 -05:00
Behdad Esfahbod
4220b7bdd7
Fix code on big-endian gcc / clang
...
Ouch! We need a bigendian bot...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1498
2018-12-20 11:48:45 -05:00
Behdad Esfahbod
c87ee72232
Minor [skip ci]
2018-12-19 22:28:16 -05:00
Behdad Esfahbod
5000a59a63
[saitnize] Minor
2018-12-19 22:27:09 -05:00
fanc999
3ee4ea9456
Fix build on older Visual Studio versions ( #1499 )
...
* src/hb-cff-interp-dict-common.hh: Use ull for unsigned int64_t
The llu suffix does not work for older Visual Studio versions
(pre-2013), but ull works for all the compilers that we attempt to
support.
* test/api: Fix build on pre-C99 compilers
Ensure variables are declared at the top of the block.
* src/hb-dsalgs.hh: Add specialization for hb_is_signed<> for __int8
Pre-Visual Studio 2010 does not consider __int8 (which is typedef'ed to
int8_t) to be equivilant to signed char, so the compiler cannot find the
corresponding hb_is_signed<> specialization that is needed.
The interesting thing is unsigned __int8 is considered to be equivilant
to unsigned char, so as the other types (short, int, long) that we look
for here, so only the specialization for __int8 is added here.
This will fix builds on Visual Studio 2008 at least.
2018-12-19 22:26:54 -05:00
Behdad Esfahbod
a62870506d
[sanitize] Use hb_static_size instead of ::static_size
...
https://github.com/harfbuzz/harfbuzz/issues/1496#issuecomment-448818112
2018-12-19 21:05:00 -05:00
Ebrahim Byagowi
0c9cd5d5f4
[test] Fix test-name-table.cc leak issue
...
Spotted it accidentally but wanted to see if is anything serious so went for fixing it
2018-12-19 21:18:30 +03:30
Behdad Esfahbod
3d9d7dc4dd
[arrays] Add hb_ubytes_t for unsigned char
2018-12-18 22:11:23 -05:00
Behdad Esfahbod
f1e95e40ed
[arrays] Remove hb_supplier_t<>
2018-12-18 16:49:08 -05:00
Behdad Esfahbod
f9417af29b
[serialize] Propagate error from hb-face
2018-12-18 13:23:32 -05:00
Behdad Esfahbod
9aebfb4182
[serialize] Streamline error propagation
2018-12-18 13:22:17 -05:00
Behdad Esfahbod
969ff3c7aa
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.
2018-12-17 22:43:00 -05:00
Behdad Esfahbod
b1094fc2d2
[arrays] Minor tweaks to hb_supplier_t
...
I think I like to keep this hb_supplier_t thing separately from hb_array_t.
2018-12-17 22:41:04 -05:00
Behdad Esfahbod
cf39c24205
[arrays] Rename Supplier to hb_supplier_t
2018-12-17 22:36:23 -05:00
Behdad Esfahbod
6b5eaa7530
Hide hb_addressof()
2018-12-17 21:55:33 -05:00
Behdad Esfahbod
6befa75cdf
Enable __builtin_* on clang
...
We'll see which old clang versions this breaks...
2018-12-17 20:35:45 -05:00
Behdad Esfahbod
8d2d410256
Add hb_addressof() and use it to fix bug after hb_bytes_t merge
...
We cannot take address hb_bytes_t direction. We need to use the
newly added hb_addressof(), ala std::addressof().
2018-12-17 20:23:26 -05:00
Behdad Esfahbod
49334f9b50
Enable system extensions in hb.hh
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1491
2018-12-17 18:27:36 -05:00
prrace
37c14bc745
Fix Solaris use after free ( #1495 )
2018-12-17 17:59:37 -05:00
Behdad Esfahbod
483f2491e4
Remove define GNU_SOURCE
...
Not needed. We get it in our config.h automatically thanks to
AC_USE_SYSTEM_EXTENSIONS. Let's see whose build it breaks...
If we end up putting it back, we should add other things from
that macro and remove the macro.
2018-12-17 17:56:10 -05:00
Behdad Esfahbod
87ff65aea1
Fix more warnings
2018-12-17 17:19:54 -05:00
prrace
f9d219a174
Fix Solaris Trailing comma in enum warnings ( #1490 )
2018-12-17 17:18:47 -05:00
Ebrahim Byagowi
244a8627f7
Lower coretext_aat shaper priority ( #1488 )
...
Related to https://github.com/harfbuzz/harfbuzz/issues/1478
2018-12-17 13:01:43 -05:00
Ebrahim Byagowi
e412008599
Remove redundant void from C++ sources ( #1486 )
2018-12-17 13:01:01 -05:00
Ebrahim Byagowi
7ace10078c
Minor, fix two more ArrayOf incorrect operator logic
2018-12-17 20:07:04 +03:30
Behdad Esfahbod
a1240383aa
[arrays] Minor fix
2018-12-17 10:44:14 -05:00
Behdad Esfahbod
381c3548e9
[array] Add cast operator to add const to Type
...
In lieu of constructor removed in previous commit.
2018-12-17 00:39:30 -05:00
Behdad Esfahbod
15acf33c22
[array] Remove problematic constructor
2018-12-17 00:38:13 -05:00
Behdad Esfahbod
470369a871
[array] Add arithmetic operators
2018-12-17 00:21:38 -05:00
Behdad Esfahbod
6cd60c2f2a
[array] Return Crap instead of Null if Type is not const
...
Ouch!
2018-12-17 00:09:06 -05:00
Behdad Esfahbod
94e72cf1c9
[array] Add operator *
2018-12-17 00:06:40 -05:00
Behdad Esfahbod
68d4a5eee0
[array] Add constructor from fixed-size array
2018-12-17 00:02:42 -05:00
Behdad Esfahbod
a4354d2fd3
[array] Organize
2018-12-16 23:57:27 -05:00
Behdad Esfahbod
84c1865821
[arrays] Reduce Supplier<> even further
2018-12-16 23:52:17 -05:00
Behdad Esfahbod
1bcc4fc9f3
Whitespace
2018-12-16 23:47:56 -05:00
Behdad Esfahbod
f85f6e815f
[array] Add operator +=
2018-12-16 23:45:07 -05:00
Behdad Esfahbod
7c0e3e9b2b
[array] Add constructor from hb_array_t<const Type>
2018-12-16 23:43:17 -05:00
Behdad Esfahbod
92680361ec
[arrays] Move Supplier<> to hb-array.hh
2018-12-16 23:38:51 -05:00
Behdad Esfahbod
2a3fa3f82f
[arrays] Remove unnecessary constructor from Supplier<>
...
Looks like operator hb_array_t<> from vector works here. :)
2018-12-16 23:33:03 -05:00
Behdad Esfahbod
507cac4943
[arrays] Start moving Supplier<> to hb_array_t<>
2018-12-16 23:31:19 -05:00