src/hb-face.cc


Log

Author Commit Date CI Message
Ebrahim Byagowi f441a7c0 2019-09-01T02:18:09 Don't allow reference blob be accessed using empty tag in hb_face_reference_table (#1947)
Behdad Esfahbod 27de7c44 2019-06-19T20:07:02 [config] Add HB_NO_FACE_COLLECT_UNICODES Part of https://github.com/harfbuzz/harfbuzz/issues/1652
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 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Behdad Esfahbod f1e95e40 2018-12-18T16:49:08 [arrays] Remove hb_supplier_t<>
Behdad Esfahbod f9417af2 2018-12-18T13:23:32 [serialize] Propagate error from hb-face
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 0d0fe9df 2018-12-16T22:29:40 [arrays] Remove need of stride in Supplier<>
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod fb059082 2018-11-30T20:45:40 Revert ugly fixes Now that we have 6daf45e0, revert cryptic hacks... This reverts commit abd81ed4f5cbc5a94171747909bc6b77551cb929. This reverts commit 9c6921c08c905a0cf45ba0182134e6ff910fac51. This reverts commit d39760cabfe4007cefdfc45231e85e93fababac2. This reverts commit fedd8e6c176dea85194693399e50243eb1c117c4. Fixes https://github.com/harfbuzz/harfbuzz/issues/1374
Behdad Esfahbod abd81ed4 2018-11-30T11:51:26 Umm. Cryptic, yes In file included from hb-face.cc:35: hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_compiles_assertion_on_line_388() const': hb-ot-cmap-table.hh:388: 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-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>] hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in> hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_instance_assertion_on_line_388() const': hb-ot-cmap-table.hh:388: 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-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf<Type>::operator[](unsigned int) const [with Type = OT::IntType<short unsigned int, 2u>] hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) <built-in> hb-face.cc: In function 'hb_blob_t* _hb_face_builder_data_reference_blob(hb_face_builder_data_t*)': hb-face.cc:650: 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-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:650: note: candidate 2: operator[](T*, int) <built-in> hb-face.cc:650: 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-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:650: note: candidate 2: operator[](const T*, int) <built-in> hb-face.cc:651: 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-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:651: note: candidate 2: operator[](T*, int) <built-in> hb-face.cc:651: 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-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:651: note: candidate 2: operator[](const T*, int) <built-in>
Behdad Esfahbod ae79fdaa 2018-11-30T11:51:26 Umm. Cryptic, yes hb-face.cc:650: 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-vector.hh:81: note: candidate 1: Type& hb_vector_t<Type, PreallocedCount>::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:650: note: candidate 2: operator[](T*, int) <built-in>
Behdad Esfahbod 0f32c95e 2018-11-30T11:31:39 Fix a few more sizeof(vector[0]) errors with weird compilers
Behdad Esfahbod 96cf0889 2018-11-24T01:07:15 [arrays] More
Behdad Esfahbod ce5da0f3 2018-11-16T02:29:13 [shaper] Rewrite shaper data code to be more template-driven than macro-driven
Behdad Esfahbod fc44dea3 2018-11-13T11:54:33 Use atomic ints for upem and num_glyphs on face
Behdad Esfahbod e88d47b7 2018-11-11T16:25:43 Minor
Behdad Esfahbod 98c6f03c 2018-11-11T15:54:20 Minor
Behdad Esfahbod ea6d9b66 2018-11-05T23:09:29 [ot-face] Remove a few ensures
Behdad Esfahbod 0fe7a745 2018-11-05T23:08:33 [ot-face] Simplify more table access
Behdad Esfahbod 914b595f 2018-11-05T22:39:50 [ot-face] Include hb-ot-face directly in hb_face_t Simplifying access coming next.
Behdad Esfahbod f6fc5574 2018-11-05T13:23:54 Add pointer magic operators to hb_atomic_ptr_t
Behdad Esfahbod 5570c87f 2018-11-03T14:51:38 Port objects to use header.writable instead of immutable Saves 4 or 8 bytes per object on 64bit archs.
Behdad Esfahbod cf5fa57f 2018-10-27T04:50:38 [docs] Change section titles again I think I like the uniform "hb-*" more.
Behdad Esfahbod 5dd86aa3 2018-10-27T04:28:40 [docs] Rename section titles to object names More useful.
Behdad Esfahbod 00cf4e5e 2018-10-27T04:07:33 [docs] Fill in some sections
Behdad Esfahbod 39bd07ae 2018-10-26T21:01:11 Fix bunch of unused parameter warnings Show up with gcc -O0. There's a few more but those are functions that need to be filled in. Maybe this is a lost battle...
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
HinTak bd1be873 2018-10-03T07:11:22 Missing colon for gobject annotation There should be a colon separating "(transfer full)" and the rest. Warned by g-ir-scanner.
Behdad Esfahbod 90a0f9fa 2018-09-26T15:03:07 Make TSan happy with make_immutable()
Behdad Esfahbod 55bae682 2018-09-24T10:43:06 [docs] A few improvements If we wrote just this much every day...
Behdad Esfahbod 9479ffef 2018-09-11T16:41:26 [dfont] Re-enable and fix offset handling Fixes https://github.com/harfbuzz/harfbuzz/pull/1085
Behdad Esfahbod 54d332dd 2018-09-10T11:37:24 1.9.0
Behdad Esfahbod a2680680 2018-08-26T15:18:46 [ot-face] Remove tables_t. The face_data_t is what tables_t was
Behdad Esfahbod 3a0b3a29 2018-08-26T15:11:24 Free up hb-ot-face.hh from includes There might be a better way to do this, but I couldn't find...
Behdad Esfahbod a84309af 2018-08-26T09:33:01 [face] Use saved cmap in collect_unicodes() APIs
Behdad Esfahbod dae39c58 2018-08-25T22:44:39 [face] Introduce character-map API New API: +hb_face_collect_unicodes +hb_face_collect_variation_selectors +hb_face_collect_variation_unicodes
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod aadb2a91 2018-08-25T08:18:53 Add face-builder New API: +hb_face_builder_create +hb_face_builder_add_table
Behdad Esfahbod 1f738094 2018-08-09T00:22:37 [atomic] Add hb_atomic_ptr_t<> and port all uses Found and fixed a couple bugs. Found a couple multithreading issues. Marked them with "XXX-MT-bug".
Behdad Esfahbod 3506672c 2018-08-06T06:17:48 Port _nil objects to Null() machinery Finally, unified!
Behdad Esfahbod 443de26f 2018-08-02T01:41:19 Minor
Behdad Esfahbod ed7b2e58 2018-08-01T23:59:09 Remove OT namespace from hb-machinery-private.hh
Behdad Esfahbod 16ccfafb 2018-08-01T22:50:06 [face] Sprinkle const in the API
Behdad Esfahbod c6bc7c38 2018-07-23T11:46:46 Set num glyphs on sanitizer reference_table() Move out-of-class definitions of two methods to hb-static so they are accessible in libharfbuzz-subset.
Behdad Esfahbod 8e3e4127 2018-07-22T22:49:26 Port rest of code away from Sanitizer<>
Behdad Esfahbod 9583e007 2018-07-22T22:40:32 Port more off of Sanitizer<>
Behdad Esfahbod 1e9e344b 2018-07-17T19:17:59 Fix hb_face_count() sanitize referencing
prrace 498e4373 2018-06-09T16:04:28 Fix SunStudio 12.6 build (#1053)
Behdad Esfahbod df01f3e5 2018-06-05T15:17:39 1.7.7
Ebrahim Byagowi 8220ef8a 2018-06-05T22:50:53 Fix hb_face_count build issue I should've rebased #1002 before the merge, my bad
Ebrahim Byagowi 32da0c6b 2018-06-05T18:56:26 Add hb_face_count, a new API (#1002) Simply, it returns the number of faces on a font blob. To be used on hb-sanitizer tool but other clients also can benefit from it.
Behdad Esfahbod eba1c16a 2018-05-08T02:47:42 Always lock blob in sanitize. Remove blob->lock_as() in favor of blob->lock()
Behdad Esfahbod b4fa5050 2018-05-08T02:45:08 Move Sanitizer::lock_instance<>() to blob->lock_as<>().
Behdad Esfahbod 470fe5b6 2018-01-09T15:48:51 [aat] Implement Lookup table Untested, but compiles.
Behdad Esfahbod dbdbfe3d 2017-10-15T12:11:08 Use nullptr instead of NULL
Behdad Esfahbod 94b3cafc 2017-10-11T17:22:44 Add hb_face_get_table_tags() New API: hb_face_get_table_tags() Fixes https://github.com/behdad/harfbuzz/issues/560
Behdad Esfahbod e1b6d923 2017-10-11T15:51:31 Remove cast of functions to (hb_destroy_func_t) Fixes https://github.com/behdad/harfbuzz/issues/474
Behdad Esfahbod c0c2dbc8 2017-10-11T12:23:35 Remove dirty tracking Turns out I don't need this to resolve CoreText optical sizing issue after all. https://github.com/behdad/harfbuzz/issues/360
Behdad Esfahbod 587f15ec 2017-08-14T15:23:10 Minor
Behdad Esfahbod d3d36918 2017-02-03T15:42:03 Add dirty-state tracking to hb_face_t
Behdad Esfahbod 113393ef 2017-01-21T15:12:03 Remove a few unused includes
Behdad Esfahbod 33317310 2016-08-08T17:24:04 Fix sign of shift operators This one: map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit); before the fix, the shift was done as an int, causing overflow if it ever got to 1 << 31. Sprinkle 'u's around. Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805
Behdad Esfahbod a5efaac4 2015-10-02T08:02:29 Replace a couple of malloc()s with calloc()
Behdad Esfahbod 5d74ff02 2015-09-03T14:55:59 Fix Since: version tags on font and face APIs A while back we marked every API as version:1.0. We should fix them all to reflect real version they were introduced. This is a start. Patch from Nikolay Sivov.
Sascha Brawer 01c3a885 2015-06-01T13:22:01 Fix "Since:" tags Based on data from http://upstream-tracker.org/versions/harfbuzz.html Resolves #103
Behdad Esfahbod eb0bf3ae 2014-08-06T15:36:41 Relax inert checks Previously, when creating an object from inert inputs (eg: "hb_font_create(hb_face_get_empty())") we returned the inert empty object. This is not helpful as there are legitimate usecases to do that. We now never return the inert object unless allocation failed. Tests are revised to reflect.
Behdad Esfahbod 3f310dc0 2014-07-22T16:26:27 Disallow changing settings on immutable face Ouch!
Behdad Esfahbod 2a8c49ad 2013-12-11T20:22:28 Remove unnecessary includes
Behdad Esfahbod ace5c7eb 2013-09-13T20:34:42 [introspection] hb-ft annotations
Behdad Esfahbod a8949df4 2013-09-13T20:23:51 [introspection] Annotate Unicode / font callbacks Should move these out of the public header... We're "clean" of introspection warnings now. Remaining ones are about graphite2 / freetype types not being introspectable.
Behdad Esfahbod 085d4291 2013-09-12T17:14:33 [introspection] Disable constructors for now Since our types are not associated with their methods, marking constructors makes them inaccessible from bindings. Undo for now.
Behdad Esfahbod 288f2899 2013-09-06T15:40:22 [docs/introspection] More annotations
Behdad Esfahbod 2e3a07ab 2013-08-26T18:49:07 Separate face source code from font Makes documentation / introspection easier.