src/hb-array.hh


Log

Author Commit Date CI Message
Ebrahim Byagowi 08d57d9e 2020-06-28T13:13:25 Add hb_array_t::lfind
Garret Rieger 14a7b6f1 2020-02-26T15:09:04 Set hb_buffer_t to use array_t.reverse().
Garret Rieger 50129b03 2020-02-25T17:39:59 Add a reverse () call to hb_array_t.
Behdad Esfahbod fa7edf87 2019-12-07T22:01:13 [bsearch] Massage API some more
Behdad Esfahbod 48eef272 2019-12-06T05:04:11 [algs/array] Consolidate the last two bsearch implementations! Yay! Seems to work.
Behdad Esfahbod fd6df520 2019-12-06T03:00:23 [array] Isolate bsearch implementation more
Behdad Esfahbod 06d3c201 2019-12-06T02:52:54 [array] Simplify bfind() positioning I had copied the old scheme from fontconfig's fccharset.c. I just convinced myself that this change is correct and produces exact same results. But I also am skeptical. Anyone else feel like convincing themselves as well please?
Ebrahim Byagowi d67ba649 2019-12-05T13:15:21 Rename hb_array_t::in_range to hb_array_t::check_range
Ebrahim Byagowi 72d83a02 2019-12-05T13:09:48 Make hb_array_t::in_range similar to hb_sanitize_context_t::check_range
Ebrahim Byagowi 3958f6fb 2019-10-29T22:36:50 Add in_range in hb_bytes_t to merge range_checker_t with it
Garret Rieger 05bcdb39 2019-10-21T16:10:06 Add a specialization of array_t:hash for hb_bytes_t and hb_ubytes_t.
Garret Rieger eab191fd 2019-10-02T14:28:53 Rewrite hash and == function for hb_array_t as a plain loop. Profling showed that the current implementation were accounting for nearly all processing time in some cases. These implementations look to be about 10x faster.
Ebrahim Byagowi 0558413f 2019-10-01T13:49:55 Minor, tweak spaces
Behdad Esfahbod 7eafe947 2019-08-30T09:40:40 Revert "[array] Add chop()" This reverts commit 545fe9d9f0870568c40c17591f3f224c228feba6. Breaks gcc 4.8 and MSVC all versions. Will add hb_chop() that works on all iterators instead.
Behdad Esfahbod 545fe9d9 2019-08-29T15:48:21 [array] Add chop() Takes n, and returns iterator of iterators that contain up to n items each. Basically cuts the array into subarrays of size n. The last sub-array might contain fewer. Ideally this should become a generic iter tool, not array-specific, so we can use it in GPOS to chop a value matrix into rows and elements.
Behdad Esfahbod c72589f1 2019-08-29T15:45:21 [iter] Change item_size to get_item_size() By moving access to hb_static_size(Type) into a function instead of a class-const, we can refer to iter types of incomplete types, which come handy when a method of hb_array_t wants to return iterator of hb_array_t. That kind of stuff. Next commit needs this to build on clang...
Behdad Esfahbod d58e248d 2019-08-29T15:23:48 [array] Add truncate() method
Behdad Esfahbod a06edf14 2019-08-29T15:21:18 [array] Use injected class name more
Ebrahim Byagowi dce42cef 2019-08-27T14:32:05 [glyf] Move GlyphHeader::from_bytes to hb_bytes_t, introduce .as<T> ()
Ebrahim Byagowi a0b4ac4d 2019-08-24T17:57:14 Turn 8 spaces to tab across the project According to the current code style of the project
Ebrahim Byagowi eff579f7 2019-06-07T12:58:09 Update and use internal qsort everywhere
Behdad Esfahbod d822e0a1 2019-05-15T16:30:08 [array] Adjust operator!= See comments.
Behdad Esfahbod d0df996c 2019-05-15T00:32:41 Use implicit lambda return type
Behdad Esfahbod 889dc1eb 2019-05-14T22:28:07 [iter] Remove sort categorization See comments.
Behdad Esfahbod 51376284 2019-05-13T15:36:14 [iter] Track strictly-sorted iterators This make output of hb_enumerate() sorted regardless of input iterator.
David Corbett b854d4ff 2019-05-10T22:51:49 [array] Fix rewinding
Behdad Esfahbod 322627ae 2019-05-09T16:08:10 Whitespace
Behdad Esfahbod 726002a6 2019-05-09T14:53:02 [iter] Make hb_is_iterator_of() check is_convertible Instead of is_cr_convertible.
Behdad Esfahbod 34764454 2019-05-08T21:14:01 Remove unnecessary template keyword Should fix MSVC.
Behdad Esfahbod e8b45c19 2019-05-08T16:37:38 [array] Add .copy()
Behdad Esfahbod 41248cce 2019-05-07T20:54:31 Remove MIN/MAX in favor of hb_min/hb_max
Behdad Esfahbod 4c2fd05c 2019-05-06T19:57:15 [iter] Implement range-based for loops Part of https://github.com/harfbuzz/harfbuzz/issues/1648
Behdad Esfahbod c51f15dd 2019-04-26T13:03:41 [array] Adjust hb_sorted_array_t copy constructor/assignment to match hb_array_t
Behdad Esfahbod b2758c36 2019-04-26T12:58:06 [array] Use hb_is_cr_convertible_to()
Behdad Esfahbod 91d958ac 2019-04-18T10:04:10 [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]
Behdad Esfahbod 54ece299 2019-04-16T16:45:53 Use type aliasing for meta-functions, ie. those returning a type
Behdad Esfahbod 1ae26588 2019-04-15T11:31:40 Fix gcc warning
Behdad Esfahbod caa20e4e 2019-04-12T17:59:18 Hide a few more symbols Exposed by: $ make CPPFLAGS=-O0
Behdad Esfahbod 95df00ae 2019-04-12T17:50:03 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++
Behdad Esfahbod f02ebc89 2019-04-03T15:23:06 [array] Add compy assignment operator since copy constructor is explicit
Behdad Esfahbod 20a73da2 2019-04-03T14:32:15 [array] Add default copy constructor MSVC seems to need it.
Behdad Esfahbod 5b66b033 2019-04-02T19:27:02 [serialize] Fix hb_hashmap_t<> for pointers and use in packed_map
Behdad Esfahbod 42ab32cb 2019-04-02T18:41:33 [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.
Behdad Esfahbod d0da547b 2019-04-02T18:22:39 [array] Use dagger for hashing array Also switch to better mixing.
Behdad Esfahbod b189bbc4 2019-03-30T19:41:48 Implement hashing of objects Should be improved for hb_bytes_t.
Behdad Esfahbod 849a0f17 2019-01-29T17:10:19 [iter] Add hb_iter_with_fallback_t instead
Behdad Esfahbod 4d40ed9d 2019-01-29T13:55:23 [iter] Add hb_iter_with_mixin_t<>
Behdad Esfahbod 84a25d79 2019-01-29T13:39:19 [iter] Rename
Behdad Esfahbod 0363ce65 2019-01-27T01:03:56 [iter] Accept C arrays in hb_iter()
Behdad Esfahbod 090fe56d 2019-01-25T15:34:03 Merge branch 'master' into iter
Behdad Esfahbod 6e3ad650 2019-01-09T09:05:01 Rename hb-dsalgs to hb-algs
Behdad Esfahbod 636786ec 2019-01-08T23:48:35 [iter] Rename __item_type__ to __item_t__
Behdad Esfahbod 177a8af3 2019-01-07T20:20:44 [array] SFINAE fun
Behdad Esfahbod 8e0a58e1 2019-01-07T19:03:53 [array] Remove construction that was removing constness
Behdad Esfahbod 815cde9f 2019-01-07T18:33:04 [iter] Use is_sorted_iterator
Behdad Esfahbod b5d6fe1a 2019-01-02T16:20:40 [iter] Remove hb_sorted_iter_t Not enforcing it using type hierarchy.
Behdad Esfahbod 6cd96ba1 2018-12-30T20:51:31 [iter] Make is_random_access_iterator a constant We cannot rely on constexpr functions...
Behdad Esfahbod 8ac64d00 2018-12-30T20:06:12 [iter] Fix sorted_iter iter class
Behdad Esfahbod 5ec11ce1 2018-12-27T17:17:28 [iter] Clarify readonly vs lvalue iterators lvalue iterators must declare __item_type__ as a reference.
Behdad Esfahbod 570473a3 2018-12-27T13:29:51 [iter] Make hb_sorted_array_t work as iter Ugly, but does the job.
Behdad Esfahbod 89949ed2 2018-12-30T01:52:19 Fix ubsan with passing nullptr to qsort()
Behdad Esfahbod 954b9854 2018-12-21T19:55:02 [iter] Add hb_sorted_iter_t<>
Behdad Esfahbod 25786f49 2018-12-21T19:29:00 [array] Port to hb_iter_t<> hb_array_t is its own iterator...
Behdad Esfahbod 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Behdad Esfahbod 865deeb3 2018-12-21T17:35:58 Adjust internal header dependencies
Behdad Esfahbod 7b4eea85 2018-12-21T16:02:16 [array] Add more hb_array() / hb_sorted_array() variants
Behdad Esfahbod 95265aea 2018-12-21T15:12:55 [array] Remove copy constructor Fixes https://github.com/harfbuzz/harfbuzz/issues/1502
Behdad Esfahbod 879faa2a 2018-12-21T01:57:40 Rename
Behdad Esfahbod bd369773 2018-12-20T23:14:24 Rename
Behdad Esfahbod 3d9d7dc4 2018-12-18T22:11:23 [arrays] Add hb_ubytes_t for unsigned char
Behdad Esfahbod f1e95e40 2018-12-18T16:49:08 [arrays] Remove hb_supplier_t<>
Behdad Esfahbod b1094fc2 2018-12-17T22:41:04 [arrays] Minor tweaks to hb_supplier_t I think I like to keep this hb_supplier_t thing separately from hb_array_t.
Behdad Esfahbod cf39c242 2018-12-17T22:36:23 [arrays] Rename Supplier to hb_supplier_t
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Behdad Esfahbod 381c3548 2018-12-17T00:39:30 [array] Add cast operator to add const to Type In lieu of constructor removed in previous commit.
Behdad Esfahbod 15acf33c 2018-12-17T00:38:13 [array] Remove problematic constructor
Behdad Esfahbod 470369a8 2018-12-17T00:20:19 [array] Add arithmetic operators
Behdad Esfahbod 6cd60c2f 2018-12-17T00:09:06 [array] Return Crap instead of Null if Type is not const Ouch!
Behdad Esfahbod 94e72cf1 2018-12-17T00:06:40 [array] Add operator *
Behdad Esfahbod 68d4a5ee 2018-12-17T00:02:42 [array] Add constructor from fixed-size array
Behdad Esfahbod a4354d2f 2018-12-16T23:57:27 [array] Organize
Behdad Esfahbod 84c18658 2018-12-16T23:52:17 [arrays] Reduce Supplier<> even further
Behdad Esfahbod f85f6e81 2018-12-16T23:45:07 [array] Add operator +=
Behdad Esfahbod 7c0e3e9b 2018-12-16T23:43:17 [array] Add constructor from hb_array_t<const Type>
Behdad Esfahbod 92680361 2018-12-16T23:38:51 [arrays] Move Supplier<> to hb-array.hh
Behdad Esfahbod dcfa4a8d 2018-12-16T20:40:07 [array] Remove custom hb_bytes_t implementation
Behdad Esfahbod 3656f56d 2018-12-16T20:35:11 [arrays] Minor
Behdad Esfahbod aa8f9471 2018-12-16T20:20:35 [array] Minor
Behdad Esfahbod 5a552f75 2018-12-16T20:07:44 [array] Move hb_array_t and related types to hb-array.hh