Commit Graph

8299 Commits

Author SHA1 Message Date
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