src/hb-set.hh


Log

Author Commit Date CI Message
Ebrahim Byagowi b73313ad 2019-09-18T00:50:32 Don't seek of out-of-bound value even if the result is not used Fixes this -fno-sanitize-recover=undefined fail, /set/iter: hb-algs.hh:1016:60: runtime error: index 4294967295 out of bounds for type 'unsigned long long const[8]' #0 0x4d1e09 in hb_vector_size_t<unsigned long long, 64u>::operator[](unsigned int) const /home/user/code/harfbuzz/src/./hb-algs.hh:1016:60 #1 0x4d8b5f in hb_set_t::page_t::previous(unsigned int*) const /home/user/code/harfbuzz/src/./hb-set.hh:139:53 #2 0x4d0ada in hb_set_t::previous(unsigned int*) const /home/user/code/harfbuzz/src/./hb-set.hh:602:36 #3 0x4cd76f in hb_set_previous /home/user/code/harfbuzz/src/hb-set.cc:494:15 #4 0x4ca8af in test_set_iter /home/user/code/harfbuzz/test/api/test-set.c:310:3 #5 0x7f3a4f3e0f49 (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72f49) #6 0x7f3a4f3e0e7a (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x72e7a) #7 0x7f3a4f3e1121 in g_test_run_suite (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73121) #8 0x7f3a4f3e1140 in g_test_run (/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x73140) #9 0x4c8894 in hb_test_run /home/user/code/harfbuzz/test/api/./hb-test.h:88:10 #10 0x4c8894 in main /home/user/code/harfbuzz/test/api/test-set.c:408:10 #11 0x7f3a4e3d2b96 in __libc_start_main /build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310 #12 0x41e7d9 in _start (/home/user/code/harfbuzz/test/api/test-set+0x41e7d9)
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
Behdad Esfahbod 4cb180d2 2019-07-02T19:44:18 Revert "Use constexpr to replace passthru_ bools" This reverts commit c4aa10ebc8dc28b1f9c90af2ca2092a7535f8395. Broke several compilers... Sigh. The version without constexpr didn't fully optimize out the unreachable code on clang. So, revert it is...
Behdad Esfahbod c4aa10eb 2019-07-02T19:15:03 Use constexpr to replace passthru_ bools
Behdad Esfahbod 08c3648c 2019-05-17T16:21:34 Oops, fix include
Behdad Esfahbod 24958b88 2019-05-17T16:20:36 [set] Use StructAtOffsetUnaligned
Behdad Esfahbod f7a45851 2019-05-15T16:49:35 Add hb_bitwise_* ops
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.
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 824fd342 2019-04-11T11:16:01 Rename a few macros
Behdad Esfahbod 5bffa9e3 2019-04-02T20:13:16 More
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 a30e1346 2019-01-28T16:39:01 [iter] Add operator << to set / vector
Behdad Esfahbod d438e610 2019-01-28T16:34:04 [iter] Fix operator() impls
Behdad Esfahbod 090fe56d 2019-01-25T15:34:03 Merge branch 'master' into iter
Behdad Esfahbod 70a52d6b 2019-01-22T12:15:23 Convert all other enum class consts to static constexpr Fixes https://github.com/harfbuzz/harfbuzz/issues/1553
Behdad Esfahbod c1cbbb94 2019-01-20T19:47:52 Use static constexpr for large class constants
Behdad Esfahbod a7de144d 2019-01-09T08:39:25 Implement uniform map interface Coverage, ClassDef, hb_set_t, and hb_map_t implement.
Behdad Esfahbod 636786ec 2019-01-08T23:48:35 [iter] Rename __item_type__ to __item_t__
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 5ec11ce1 2018-12-27T17:17:28 [iter] Clarify readonly vs lvalue iterators lvalue iterators must declare __item_type__ as a reference.
Behdad Esfahbod 6dc4a1c9 2018-12-26T19:49:13 [iter] Remove const_iter
Behdad Esfahbod d3976b7e 2018-12-26T18:54:27 [iter] Make them work, mostly
Behdad Esfahbod bd1318b8 2019-01-20T19:47:52 Use static constexpr for large class constants
Behdad Esfahbod 043b610f 2019-01-19T09:20:46 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; }
Behdad Esfahbod fa333e34 2018-12-27T17:56:22 [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...
Behdad Esfahbod e4355b1c 2018-12-22T16:11:22 [set] Add iter_t as alias to const_iter_t
Behdad Esfahbod 33f8de61 2018-12-22T15:10:18 [set] Change to const_iter
Behdad Esfahbod f88fed5c 2018-12-22T11:11:10 [set] Cache length in iterator
Behdad Esfahbod 89d04129 2018-12-21T20:07:52 [set] Actually derive iterator from hb_sorted_iter_t<>
Behdad Esfahbod fc35919d 2018-12-21T20:06:17 [set] Implement unified iterator
Behdad Esfahbod 4911e67d 2018-12-21T20:00:52 [set] Mark some internals protected
Behdad Esfahbod 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Behdad Esfahbod 9aebfb41 2018-12-18T13:22:17 [serialize] Streamline error propagation
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod 0f32c95e 2018-11-30T11:31:39 Fix a few more sizeof(vector[0]) errors with weird compilers
Behdad Esfahbod 861bc753 2018-11-29T14:34:44 [vector] Make pointer cast explicit Too bad this doesn't help MSVC 2008 build, as explicit operators are C++11.
Behdad Esfahbod 72955e68 2018-11-29T14:28:44 Hand-hold older compilers
Behdad Esfahbod d77a098b 2018-11-24T10:06:13 [arrays] Improve bfind() interface Much more useful now. :)
Behdad Esfahbod 22e1857b 2018-11-24T00:53:19 [arrays] Change argument type of cmp called by hb_vector_t.bsearch() Towards consolidating all array bsearch/...
Behdad Esfahbod d0e81b2c 2018-11-22T21:20:39 [set] Rename
Behdad Esfahbod af123bd1 2018-11-12T16:27:08 Add hb_memcmp()
Behdad Esfahbod 5f97fe99 2018-11-09T10:01:50 Fix a few MSVC 2008 warnings https://github.com/harfbuzz/harfbuzz/issues/1374
Behdad Esfahbod 93ef20a8 2018-11-03T15:03:06 Replace most uses of is_inert with is_immutable
Behdad Esfahbod 5854d3fa 2018-10-31T10:42:49 [set] Warning fix with gcc 8.1 https://github.com/harfbuzz/harfbuzz/pull/1334
Simon Tooke 881e1054 2018-10-30T14:16:23 fix various GCC function pointer warnings
Behdad Esfahbod b1862743 2018-10-29T23:21:14 [set/map] Fix uninitialized memory I keep forgetting that primitive types are NOT initialized during construction. :|
Behdad Esfahbod 67a22f37 2018-10-29T17:37:41 [set/map/vector] Make constructable, but not copy or assignable Disable copy/assign on them, as they shouldn't. Make constructor / destructor call init_shallow/fini_shallow, and make those idempotent. So, these three can be constructed on stack now and no init/fini call is needed. As such, hb_auto_t<> is not needed anymore. I'll remove that separately.
Behdad Esfahbod 955aa56b 2018-10-25T16:50:38 [vector] Make it act more like pointer Add pointer cast operator and plus operator.
Behdad Esfahbod 8d55e2ad 2018-10-25T16:37:53 [set] Minor
Behdad Esfahbod 64c32edf 2018-10-25T16:35:36 [set] Make array access more explicit Follow up on 94e421abbfc7ede9aaf3c8d86bb0ff9992ea3123
Ben Wagner 94e421ab 2018-10-25T13:44:27 Remove some use of Crap in hb-set. When hb_set_t::page_for_insert needs to insert at the end of the page_map it ends up evaluating '&page_map[i + 1]' which has hb_vector return an lvalue of a Crap so that nothing can be moved to its address. This turns into issues with ThreadSanitizer on Crap when two threads modify different hb_set_t instances. This can be avoided by using '&page_map[i] + 1' instead.
Michiharu Ariza 55942ad5 2018-10-06T14:49:44 Merge branch 'master' into cff-subset
Behdad Esfahbod 341206eb 2018-10-05T18:39:48 [vector] Make hb_vector_t relocatable / nestable Ugly, but... Fixes https://github.com/harfbuzz/harfbuzz/issues/1227
Behdad Esfahbod 606bf574 2018-09-16T19:33:48 Revert forcing use of single-parameter static_assert() Some clang versions define static_assert as a macro apparently, so we cannot redefine it... This reverts commit 94bfea0ce6a7b4d5641c198d50751748a353df11. This reverts commit 4e62627831e7457ed60ff87712570065b14b200a.
Behdad Esfahbod 4e626278 2018-09-16T18:09:36 Enforce single-param static_assert() only So we don't accidentally break it again.
Behdad Esfahbod fda994e1 2018-09-07T15:02:57 Use enum instead of "static const" in class scope Technically, static const needs an out-of-class definition. Eg: CXXLD libharfbuzz-subset.la Undefined symbols for architecture x86_64: "OT::FeatureVariationRecord::min_size", referenced from: bool OT::GSUBGPOS::subset<OT::PosLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o bool OT::GSUBGPOS::subset<OT::SubstLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o "OT::Record<OT::LangSys>::min_size", referenced from: OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o "OT::IntType<unsigned short, 2u>::min_size", referenced from: OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o OT::RecordListOf<OT::Feature>::subset(hb_subset_context_t*) const in libharfbuzz_subset_la-hb-subset.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[4]: *** [libharfbuzz-subset.la] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Exited with code 2
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.