Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initialize bad_indices on hb-subset #775

Merged
merged 1 commit into from
Feb 11, 2018
Merged

Conversation

ebraminio
Copy link
Collaborator

Fixes #774 and hopefully brings back some of the bots.

@ebraminio ebraminio merged commit c8d4c2e into harfbuzz:master Feb 11, 2018
@ebraminio
Copy link
Collaborator Author

I can see why this happened (c31fcf4), how hb_auto_array_t could do this automatically, and I guess there are some other places we have uninitialized variables (like this, I don't see any indication of initialization). Hopefully we will address all of them.

behdad added a commit that referenced this pull request Feb 12, 2018
mehulagg pushed a commit to mehulagg/superproject that referenced this pull request Dec 21, 2019
* Update external/harfbuzz_ng from branch 'master'
  to 45a4d8338c593592b40a143cfe7f3a71f336a548
  - Merge "Update Harfbuzz to 1.8.3"
  - Update Harfbuzz to 1.8.3
    
    Bug: 78038251
    
    Change-Id: I2b842a4e3faf85919363c44ce7c8ebf92f48f3d7
    
  - 1.8.3
    
  - Fix shift
    
  - Put back include dependencies
    
  - Move more stuff from hb-private.hh to hb-dsalgs.hh
    
  - Move more stuff to hb-dsalgs.hh
    
  - Move hb_bytes_t to hb-dsalgs.hh
    
  - Remove hb_auto_array_t
    
  - Include more basic internal headers from hb-private.hh
    
  - Minor renamings of internal inline functions
    
  - Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh
    
  - Move hb_stable_sort to hb-dsalgs.hh
    
    Also, include hb-dsalgs.hh from end of hb-pricate.hh
    
  - Minor
    
  - Fix syntax
    
    Oops.
    
  - Add posix_memalign() fallback
    
  - Always compile (but not use) alignof() and round() fallback codes
    
    Catches compile-errors in them better.
    
  - Fix alignof impl
    
  - Add fallback implementation for constexpr and alignof
    
  - Minor
    
  - Merge pull request #1091 from anthrotype/fix-gen-def-py
    
    gen-def.py: pass headers as arguments so that msys2 can convert posix paths
  - CMakeLists.txt: don't pass header args as single space-separated string
    
    let python's parse command-line args as usual
    
  - CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE
    
  - src/Makefile.am: pass headers to gen-def.py as arguments, not env vars
    
  - gen-def.py: pass headers as arguments so that msys2 can convert posix paths
    
    When one is not using the msys2 python, the header files that are passed in as environment
    variable cannot be found.
    
    https://ci.appveyor.com/project/fonttools/ttfautohint-py/build/1.0.65/job/rkremny4jjid9nl2#L803
    
    This is because msys2 shell and make use POSIX paths (e.g. /c/Users/clupo/...)
    whereas non-msys2 python.exe uses native Windows paths (e.g. C:\Users\clupo\...).
    
    Msys2 will automatically convert command line arguments (but not environment variables) from
    POSIX to Windows paths when calling a native win32 executable, so we pass the header paths
    as arguments instead of environment variables.
    
    This way the gen-def.py script can support both mingw python running in an MSYS2 shell, and
    native win32 python.
    
  - Do not enforce a native direction of LTR for Runic
    
    Fixes #481
    
  - Regenerate the USE table for Grantha and Bhaiksuki (#1090)
    
    Completes #1037 and fixes #1035.
  - Disable vectorization
    
    Disable vectorization for now.  To correctly use them, we should
    use posix_memalign() to allocate them.  Otherwise, can cause
    misaligned access.
    
    https://bugs.chromium.org/p/chromium/issues/detail?id=860184
    
  - Fix warning
    
    ../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations]
    
  - Allow disabling vector_size use
    
  - Use CreateFileW explicitly and pass wchar_t to it (#1087)
    
    
  - [indic] Adjust left-matra repositioning and Halant,ZWJ sequence
    
    From the new code (first paragraph is from the OT Devanagari spec.):
    
      /*   o Reorder matras:
       *
       *     If a pre-base matra character had been reordered before applying basic
       *     features, the glyph can be moved closer to the main consonant based on
       *     whether half-forms had been formed. Actual position for the matra is
       *     defined as “after last standalone halant glyph, after initial matra
       *     position and before the main consonant”. If ZWJ or ZWNJ follow this
       *     halant, position is moved after it.
       *
       * IMPLEMENTATION NOTES:
       *
       * It looks like the last sentence is wrong.  Testing, with Windows 7 Uniscribe
       * and Devanagari shows that the behavior is best described as:
       *
       * "If ZWJ follows this halant, matra is NOT repositioned after this halant.
       *  If ZWNJ follows this halant, position is moved after it."
       *
       * Test case, with Adobe Devanagari or Nirmala UI:
       *
       *   U+091F,U+094D,U+200C,U+092F,U+093F
       *   (Matra moves to the middle, after ZWNJ.)
       *
       *   U+091F,U+094D,U+200D,U+092F,U+093F
       *   (Matra does NOT move, stays to the left.)
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/1070
    
    Test case added with Adobe Devanagari.
    
  - Fix unused function '_hb_mapped_file_destroy' if no mmap
    
  - 1.8.2
    
  - Disable .dfont code for now
    
    The get_table imple was wrong, as table offsets in a dfont are
    relative to the resource.  We were treating them as relative to
    the big blob itself.  To be fixed.
    
    Part of https://github.com/harfbuzz/harfbuzz/pull/1085
    
  - Fix trak table apply logic
    
    In collaboration with Behdad
  - Support dfont font files (#949)
    
    
  - Improve nommap naming and use C style comments on create_from_file (#1084)
    
    
  - Adjust MarkBasePos heuristic in presence of MultipleSubst
    
    From the issue:
    "In this font, the virama,ya first forms a ligature, then decomposes back to
    virama,ya. This causes those two to be marked parts of a MultipleSubst
    sequence. When attaching the matra, we look for the first of the MultipleSubst
    sequence because that's where we attach to (because of eg #740). In this case,
    the first glyph in the MultipleSubst sequence is a mark, so we skip it and
    attach to the base char before it."
    
    Font in question is Nirmala UI from Windows 10. Test sequence:
    
      U+0926,U+094D,U+092F,U+0941
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/1020
    
  - [indic] Tweak for old-spec Bengali and halant-ya-halant
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/1073
    
  - Rebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara
    
  - [khmer] Fix infinite-loop in cluster merging
    
    Indic shaper already had this check.  We removed it when forking
    Khmer shaper by mistake.
    
    Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1464623
    
  - armcc compatibility, don't use EINTR if doesn't exist
    
    Fixes #1081
  - Minor on hb_blob_create_from_file, reuse ferror result
    
    Oops
  - [ci] Don't fail on apt update and revive clang-O3-O0
  - Minor, rename blob to data on blob_from_file
  - Minor touches on hb_blob_create_from_file (#1079)
    
    * Handle EINTR on fallback reader
    * Increase fallback reader limitation size limitation to 2 << 28
    * Ensure _O_BINARY does exist if MMAP is used on Windows
      (maybe superfluous but makes me more confident)
  - Make round() fallback portable to systems that do have round()
    
    Makes compiling without HAVE_ROUND on systems that do have it work.
    
  - Minor on hb_blob_create_from_file
    
    Add one more "unlikely" annotation and use explicit nullptr check for more consistency.
  - [subset] Add fuzzer test case that caused a timeout to the corpus.
    
  - Unify our pipe reader with the fallback reader (#1068)
    
    And assign one bot to use the path always using NOMMAPFILEREADER token.
    
    It's limited to 200mb so no more fun with using /dev/zero on hb-view!
  - Resolve ttx absolute path before use (#1075)
    
    
  - Treat - just as /dev/stdin and remove one extra file reader (#1065)
    
    
  - In Coverage iterator, bail out if table smells
    
    In particular, if CoverageFormat2 has unsorted ranges, bail out.
    Otherwise, 64k ranges of each 64k glyphs can DoS closure() method.
    
    We can do the same for CoverageFormat1, but that one does not expose
    the quadratic behavior, so, fine.
    
  - Support pipe and friends on hb_blob_create_from_file (#1061)
    
    With this hb-view/hb-shape support pipes and possibly socket and named pipe
    also, anything fails just on mmap.
    
    We can later do the same for Windows also.
    
    This however reveals two issues, the fact most of our bots don't have HAVE_MMAP and using
    this instead the other fread/fopen reader can make failure on CI. I should look at them separately
    this change however is very low risk I believe.
  - Revert file blob sanitization and index checking (#1062)
    
    As https://github.com/harfbuzz/harfbuzz/pull/1059#issuecomment-397912812 we
    like to still work with blobs that harfbuzz itself can't handle directly that are failing sanitization
    currently apparently.
  - Verbose fail when something is wrong with hb-shape/hb-view input font file (#1059)
    
    This checks if the blob isn't empty and uses `hb_face_count`
    to see if the font file passes the simple font file sanitization
    so can detect if the input is actually a font and checks also
    whether input font-index is out of range.
  - Fix reading fonts from stdin (#1060)
    
    We were passing the font path directly to freetype so rendering
    was broken when we are getting the font from stdin.
    
    This fixes it by using FT_New_Memory_Face instead.
    
    This fixes:
    * build/util/hb-view /dev/stdin text < font.ttf
    * build/util/hb-view - text < font.ttf
    * cat font.ttf | build/util/hb-view - text
    
    but doesn't work on
    * cat font.ttf | build/util/hb-view /dev/stdin text
    
    which I will try to fix separately.
  - 1.8.1
    
  - [docs] Enlist misc new symbols
    
  - Move hb-version.h generation to Makefile
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/864
    
    Unfortunately 1.7.7 and 1.8.0 went out with the wrong hb-version.h contents.
    
  - [subset] Remove HB_SUBSET_BUILTIN
    
    Just include hb-static.cc in libharfbuzz-subset.so source list as
    well.  Those building it built-in will include hb-static.cc once
    already.  No need for any gymnastics.
    
  - [substitute-closure] Rename function for clarity
    
  - Whitespace
    
  - [vector] Always 0-fill new items
    
  - Fix compiler warning re reordering of initializations
    
  - Style
    
  - [hb-set] Additional testcase for hb-set-intersect.
    
  - [hb-set] Don't shrink vectors until after processing their contents.
    
    Fixes #1054.
    
  - Fetch the updated dwrite_1.h header from a better place
    
    Following to https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1693/job/mfkjdhcdykjuqdfc
  - More fixes for SunStudio 12.6 build
    
    Followup to https://github.com/harfbuzz/harfbuzz/pull/1053
    
  - Fix SunStudio 12.6 build (#1053)
    
    
  - [subset] Use REPLACEME instead of version.
    
  - [subset] Move variable declaration out of loop.
    
  - [subset] Add test cases for gsub closure in subsetting.
    
  - [subset] Add fuzzing of gsub closure to hb-subset-fuzzer.
    
  - [subset] Use gsub closure if ot layout is not being dropped.
    
  - [subset] Add drop_ot_layout setting to subset input.
    
  - [subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups.
    
  - [set] Add is_subset
    
    New API:
    +hb_set_is_subset()
    
  - [subset] Add memoization of GSUB lookup closures.
    
  - Minorish
    
  - Compiler gymnastics
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/630
    
  - Move prime_for back into map
    
    This was causing problem on systems without visibility when map was used
    from both libharfbuzz and libharfbuzz-subset. Sigh.
    
    https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1669/job/dey47nmff0770vp3
    
  - Convert Consonant_Initial_Postfixed to CONS_FINAL
    
    Consonant_Initial_Postfixed was split off of Consonant_Succeeding_Repha,
    so it should correspond to the same USE class, CONS_FINAL.
    
  - 1.8.0
    
  - [ucdn] Update to Unicode 11
    
    https://github.com/grigorig/ucdn/issues/19
    
  - Update to Unicode 11.0.0
    
    UCDN is not updated yet.
    
  - Minor
    
  - [RELEASING] Update
    
  - 1.7.7
    
  - [khmer] Fix Coeng vs Halant confusion
    
    Test suite results are unchanged (34).
    
  - Fix hb_face_count build issue
    
    I should've rebased #1002 before the merge, my bad
  - 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.
  - [sinhala] Move reph to after post-consonants
    
    Apparently this changed between Win 7 and Win 10.
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/967
    
    To be continued in https://github.com/harfbuzz/harfbuzz/issues/1044
    
  - [test] Fix record-test to use gids not glyph-names
    
    as those might not match what FontTools think of the glyphs if font
    does NOT have glyph names.
    
  - Remove DISALLOW_* from vector, set, and map
    
    Some of the build bots, still fail on this.  I suppose mine pass because
    I enable C++11...
    
    Anyway, remove these again.
    
  - Fix fallout from 975bdd5ef562e37655067b703b2b9ca7481f4985
    
    Ouch!
    
  - [vector] Use Crap pool in push() as well
    
  - [vector] Keep success status
    
  - [vector] Whitespace
    
  - Another attempt at making every compiler happy...
    
    Sigh.
    
  - [map] Move prime_for to hb-static
    
  - [set] Shrink page-map size again
    
  - Fix hb_vector_size_t
    
  - [subset] Have the subset fuzzer pull the text string to subset to from the end of the fuzzer provided data.
    
  - Add Codacy badge
  - Revert "Remove HB_DISALLOW_COPY_AND_ASSIGN"
    
    This reverts commit ff92de766bf775bfdd3a01bda94de699180ff86a.
    
    Revert that and remove ASSERT_POD. Let's see which bots are
    unhappy with this configuration...
    
  - Use NullPool for _hb_set_nil and _hb_map_nil
    
  - [set] Minor
    
  - Rename in_error to !successful
    
    Towards possibly using Null pool for some nil objects.
    
  - Fix a whitespace inconsistency
    
    Null() and Crap() are only places that there's no space before '('...
    
  - Remove trivial HB_ATOMIC_INT_INIT()
    
  - Use 0 as inert object reference value instead of -1
    
    Towards using Null object for nil objects.
    
  - Add const OffsetTo<> dereference
    
    Unused, but now that we have CrapPool, implement it.
    
  - Fix symbol export issue of prime_mod on Alpine bot
    
    Apparently our gcc-6.4.0 on Alpine Linux distribution doesn't like defining static const
    inside a method, lets put that on outside the classes.
  - [map] Mark prime_for HB_INTERNAL
    
    Trying to see if it fixes gcc-4.2 bots.
    
  - Add CrapOrNull
    
  - [subset] Switch to using hb_map_t inside of hb_subset_plan_t.
    
  - [map] Fix size calculation
    
    Don't know why I thought I should subtract one there...
    
  - Remove HB_DISALLOW_COPY_AND_ASSIGN
    
    llvm-gcc-4.2 bot had this problem:
    hb-private.hh:812: error: initializer specified for non-virtual method 'void hb_vector_t<Type, StaticSize>::operator=(const hb_vector_t<Type, StaticSize>&) [with Type = hb_user_data_array_t::hb_user_data_item_t, unsigned int StaticSize = 1u]'
    
    Removing the delete didn't work with a constructor. So, remove constructor.
    Just disallow assignment.  Still better than nothing.
    
  - [map] Fix resize
    
  - Disable use of thread_local
    
    Clang build was failing with:
    
    /usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32 against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used when making a shared object
    
    Instead of fighting it, just disable use of it.
    
  - [map] Not going to implement is_equal which is complicated
    
  - [map] Move prime_mod to header to avoid linkage issues in subset.so
    
  - [map] Fix copyright year
    
  - [map] Minor
    
  - [map] Don't return INVALID from get() just because in_error
    
  - [map] Fix bool use in C API
    
  - [map] More minor
    
  - [map] Make initial resize actually work
    
  - [map] Add clear(), is_empty(), and get_population()
    
  - [map] Minor
    
  - [map] Track population and occupancy separately
    
  - [map] Minor
    
  - Revert "[map] Return bool from set()"
    
    This reverts commit face7cf55d4895ffca314c8448c0a749a26cc182.
    
  - Revert "[map] Make hb_map_set() return bool"
    
    This reverts commit 7bf1980146cfc081b06264ac367b23ae9397adf1.
    
  - [map] Make hb_map_set() return bool
    
  - [map] Return bool from set()
    
  - [map] Implement operator[] for get()ting
    
  - [map] First try at implementing an integer-to-integer hashmap
    
    Fully untested.
    
  - [blob] Use MAP_NORESERVE if available (#1039)
    
    MAP_NORESERVE is not available on macOS for example so set the flag
    to zero if not defined on the headers.
  - [set] Remove stale comment
    
  - Add HB_DISALLOW_COPY_AND_ASSIGN
    
  - Move pool definitions to hb-static.cc
    
  - Fix Uniscribe build
    
    If a pointer type was passed to Null(), reinterpret_cast<> was
    complaining about qualifiers being removed. Turns out I need the const on
    the other side of "Type" to fix that.  Also remove unused const from
    NullPool type.
    
  - Underflow protection in hb_vector_t
    
  - Mark CrapPool thread_local
    
    Not sure if I like to keep it. For now, aim for correctness.
    
  - Add CrapPool
    
    Common Regoin for Access Protection.  Like the NullPool, but writable.
    
  - Move code around
    
  - Add hb_vector_t::push(const Type &v)
    
    Makes for cleaner code.
    
  - [ci] Revive the SunCC bot
    
    * Adds libnsl to the bot as it is now needed apparently
    * Disables hb-icu, apparently the newer ICU itself is not compatible with SunCC
  - Actually enable vectorized operations
    
    Fixup for previous commit. Was accidentally turned off.
    
  - Another try at smart vectorization
    
    Make clang happy. Also, don't use anonymous union.
    
  - Try enabling vectorization smartly
    
    We'll see if this sticks to the bots.
    
  - [set] Always check population before checking for equality
    
  - [test/text-rendering-tests] Update from upstream
    
  - Minor, make CreateFile compatible with the disabled writable flag
    
    "writable" is not in use and probably we can go in the reverse direction
    and remove the flags that are useful for enabled writable, this is just
    for the sake of completeness however.
  - Remove unnecessary headers and definitions of hb-blob (#1028)
    
    It removes io.h and other polyfills which we no longer need as 7e76d74
  - Make hb_blob_create_from_file more portable (#1027)
    
    This makes it compatible with ARMCC which I had access in
    a collaboration with @imgtec, thanks!
    
    Basically hb_blob_create_from_file features three code paths,
    mmap, Win32 and fallback.
    
    We had fallback implementation even before this but it was relied
    to "open" which is not available on some environments. This change
    improved the situtation by using only fopen and friends for
    fallback path.
    
    Interestingly we could use "open" on Windows but in fact it was
    emulated by MSVCRT so I've completely split that from Unix path
    now that we have a distinct path for fallback path also.
  - Fix warning
    
  - Reinstante DEFINE_NULL_DATA
    
    Seems like I messed up; buffer overrun got reported.
    
  - Use arrayZ on hb-coretext and hb-uniscribe and fix macOS/Win bots (#1024)
    
    Following to 63f57f4
  - Mark more unsized array's as arrayZ
    
  - Use UnsizedArrayOf<> in one place where [VAR] was used
    
    Trying to see how many can converted meaningfully.
    
  - Merge pull request #1018 from googlefonts/cmap4
    
    [subset] Add cmap format 4 subsetting.
  - Don't keep instance in hb_table_lazy_loader_t
    
  - Rename
    
  - Minor
    
  - Always lock blob in sanitize. Remove blob->lock_as() in favor of blob->lock()
    
  - Move Sanitizer::lock_instance<>() to blob->lock_as<>().
    
  - Move null pool to hb-private
    
  - Rename hb_string_t to hb_bytes_t
    
  - Minor
    
  - Allocate user-data-array on the heap
    
    This saves each object allocation 72 bytes.  Now object overhead is just
    16 bytes (on x86) instead of 88 bytes. Neat.
    
  - Oops
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/1023
    
  - Support scripts that are written both LTR and RTL
    
    Right now only Old Italic is marked as such.
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/1000
    
  - [ot] Apply langsys's required feature even if no other feature exists
    
  - Move some blob functions to methods
    
  - Add hb-blob-private.hh
    
    Towards making blob more memory-allocation-friendly
    
  - [ot-layout] Remove unused members
    
    We should hang those off somewhere else. For now, the unused ones can go.
    
  - Set inline hidden flag only on shared library building
    
    To avoid need of CMP0063 which is not available on older CMake versions
  - [subset] entrySelectorZ -> entrySelector.
    
  - [subset] add missing template parameter.
    
  - [subset] Switch to a non-log using implementation of caculating searchRangeZ, entrySelectorZ, and rangeShiftZ in cmap4.
    
  - [subset] Updated expected files for japanese subset integration tests to include cmap4.
    
  - [subset] Update expected files for subset integration tests to include cmap4.
    
  - [subset] Get cmap tests passing again.
    
  - [subset] Write out a format 4, plat 0 encoding record to match fontTools.
    
  - [subset] A few bug fixes for cmap format 4 subsetting.
    
  - [subset] Complete implementation of cmap4 subsetting.
    
  - [subset] WIP implementation of serialize for cmap format 4.
    
  - [subset] Add an implement for cmap format 4 create_sub_table_plan.
    
  - [subset] WIP cmap format 4 subsetting.
    
  - [subset] Refactor cmap subsetting to make it possible to add support for more sub tables.
    
  - [subset] Add const to the hb_subset_plan_t input to a couple functions in hb-subset-plan.
    
  - Rename some X-terminated members to Z-terminated
    
    X-terminated means don't access this, it's not located correctly.
    Z-terminated means this is a C array with no bound checking.
    
  - [set] Fix init/fini of set on the stack to call object init/fini
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/1017
    
  - Remove hb_auto_array_t
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/1017
    
  - s/hb_prealloced_array_t/hb_vector_t/g
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/1017
    
  - Add hb_auto_t
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/1017
    
  - s/finish/fini
    
    For consistency.
    
  - Add hb_object_fini()
    
  - [set] Cache population
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/1017
    
  - [subset] Do not compare ttx progress output in the tests
    
    Suppress progress messages of ttx. This avoids comparing this output to the reference file which lets the test fail.
  - [dwrite] Minor, enable the original code assertions
  - Don't decompose Bengali Rra and Rha
    
    Fixes #779 and follow up to b01d9b3d90e892341ee4463f2eda4600850b97d8
    
  - Minor, improve file reading failing condition comment 
    
    https://bugzilla.gnome.org/show_bug.cgi?id=659212 for more context
  - Minor, re-add unused mark to some of ragel defined state machines (#1005)
    
    
  - Minor, re-add unused mark for two TRACE_ macros
    
    To revive Travis CI bot
  - Resolve some of clang's double-promotion warnings
    
  - Resolve clang's used-but-marked-unused warnings
    
  - Resolve clang's conditional-uninitialize warnings
    
  - Resolve some of clang's zero-as-null-pointer-constant warnings
    
  - Minor, fix calloc call order
  - [aat/kerx] Minor (#1003)
    
    
  - Add hb_blob_create_from_file, a new API (#926)
    
    
  - [subset] Check instruction offsets in glyph to ensure they are in bounds.
    
  - [subset] In subset fuzzer run through drop hints and keep hints pathways.
    
  - [util] Check all specified shapers are known (#993)
    
    A bit brute force and requires all shapers to be known, not just one.
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/956
  - [subset] Add integration tests for cmap breakge.
    
  - [subset] Add a test for previous cmap breakage.
    
  - [subset] Fix broken cmap creation.
    It was ignoring the restriction that gids must be consecutive to be placed into a single group.
    
  - Minor, annotate the added tables with likely/unlikely (#997)
    
    
  - [subset] Remove printf's from fuzzing targets.
    
  - Do sanitization before the use on 'main' mini-program (#994)
    
    
  - [subset] add a fuzzer target for subset_get_all_codepoints method. (#987)
    
    
  - [colr] Check layer record access
    
  - [subset] Add implementation of cmap format 12 codepoint listing. (#988)
    
    
  - Add pre-opentype font pages detection code (#986)
    
    As Khaled's finding on #981 this is the way Uniscribe detects those fonts. This is its detection part.
  - Make some of implicit header uses explicit (#989)
    
    Splitted from #950 and #986 IIRC Chromium had a policy about this encouraging it,
    not sure about automated way to detect and add them but for now lets have the needed
    ones of them.
  - Add round to F2DOT14 inner store setter (#990)
    
    It uses floor implicitly without it but explicit use of round will be more correct.
  - [subset] Don't assume the last segment in cmap 4 can be skipped, actually check it.
    
  - [subset] sketch out support for a call that lists all codepoints present in a font. Implement support for it in format 4 cmap sub table.
    
  - Further improvements on dump-fon (#985)
    
    
  - Add dump-fon, a prototype on how to work with .fon/.fnt files (#981)
    
    
  - Implement to_float and set_float of F2DOT14 (#984)
    
    
  - Rename UINT24 to HBUINT24 for consistency (#983)
    
    
  - Merge pull request #979 from ebraminio/msvc05
    
    Reinstate support for Visual Studio 2005
  - Reinstate support for Visual Studio 2005
    
  - Always enable atexit on Android (#971)
    
    Obviously one can use a newer NDK for building an updated HarfBuzz
    instead that now pretty old version however I am concerned if that
    version checking is working with clang that is used with the newer
    NDK versions.
  - Update the links and revive the dead ones
    
  - Add or update tables specifications links
    
  - minor, use LOffsetTo and LArrayOf whenever possible (#966)
    
    
  - [dwrite] Cosmetic change (#963)
    
    
  - [graphite] Use tabs instead 8 spaces (#965)
    
    
  - [aat] Cosmetic changes (#964)
    
    
  - [ot-color] Cosmetic changes (#962)
    
    
  - minor
  - [colr/cpal] Improvements and add a sample renderer (#927)
    
    
  - [ci] Don't fail on brew warnings
    
    Not the best fix but it works and we don't care about brew warnings, so
  - Fix build with CoreText on OS X 10.7 and earlier (#952)
    
    
  - [aat] Further improvements on feat (#948)
    
    
  - [hangul] Fix comment
    
  - [aat] Implement feat table parsing (#947)
    
    
  - Another try at fixing linker issue
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/880
    
  - Minor build related changes
    
    
  - [aat] Implement gcid table parsing (#944)
    
    
  - [aat] Implement bsln table parsing (#943)
    
    
  - Make atexit callbacks threadsafe (#930)
    
    
  - [graphite] Make get_table threadsafe (#931)
    
    
  - Make gen-* scripts LC_ALL=C compatible (#942)
    
    
  - Actual py3 compatibility making on gen-* scripts (#941)
    
    
  - Make more gen-* scripts py3 compatible (#940)
    
    
  - Add README.wine.md and touch some other docs (#939)
    
    
  - [atexit] Make hb_languate_item_t *langs freeing threadsafe
    
    Part of https://github.com/harfbuzz/harfbuzz/issues/923
    
  - Fix one UBSan warning
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/935
    
  - [uniscribe] Fixup for previous commit
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/934
    
  - [uniscribe] Fix assertion fail in checksum calc
    
    Program: Z:\Users\ebrahim\Desktop\harfbuzz\winbuild\util\.libs\hb-shape.exe
    File: ../../src/hb-open-type-private.hh, Line 769
    
    Expression: 0 == (Length & 3)
    
    abnormal program termination
    
  - Make gen-use-table.py py3 compatible (#932)
    
    
  - [subset] fix infinite loop bug in looping through tables for subsetting.
    
  - Implement an internal emojis dumper tool (#909)
    
    Later to be expanded to a more general tool but for now it only supports CBDT, SVG and CBDT.
  - [ci] Fix coverage build fail (#925)
    
    
  - [subset] Couple of fixes for fuzzer discovered issues. (#924)
    
    * [subset] sanitize individual DeviceRecord's as part of hdmx sanitization.
    
    * [subset] Fix out of bounds read with non-two byte align glyphs.
    
    * [subset] Just use size_device_record >= DeviceRecord::min_size.
    
    * [subset] Add TODO.
    
    * [subset] Re-order checks in hdmx sanitize.
    
  - [hdmx] Minor
    
  - Minor
    
  - Fix previous commit
    
    Automake has this stupid behavior where if your Makefile.am has
    syntactic error, it can get to a state that make succeeds but just
    ignores broken Makefile.am.  Ouch.
    
  - Try fixing linking again
    
    Before 1.7.5, we were setting -fno-exceptions etc on CXXFLAGS. In 1.7.6
    we set it as CPPFLAGS. Try fixing. Also, I'm fairly sure it's safe to
    set these unconditionally.
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/880 (or so I hope)
    
  - Add HB_SUBSET_BUILTIN
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/865
    
  - Add HB_NO_ATEXIT
    
  - [aat] Unprefix not essentially layout tables (#921)
    
    
  - Allow trailing non-numeric chars in --unicodes
    
  - [aat/ltag] Whitespace
    
  - [aat/ltag] Implement the table parsing (#911)
    
    
  - [aat/fmtx] Implement the table parsing (#910)
    
    
  - [ci] Add a build only apple-gcc-4.2 i686 bot
    
  - [dwrite] minor
    
  - More ULL fixes
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/901
    
  - Define uint64_t constants with ULL suffix
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/901
    
  - hb-private.hh: Add fallback implementation for round()
    
    For pre-C99 compilers that do not support round(), we need to have a
    simplistic implementation for it, when it is not detected during build
    configuration, either via CMake or autotools, by using floor() and
    ceil(), which are provided in the pre-C99 compilers.
    
    Please see discussion at commit 86a0ac2 for more details for re-adding
    this patch.
    
  - Policy 0063 must be enabled to have hidden inline visibility... (#900)
    
    ...on static builds.
  - Fix llvm-gcc-4.2 compile issue and add a macOS bot to test it (#899)
    
    
  - [dwrite] Replace rest of 'malloc/free's with 'new/delete' (#897)
    
    
  - [subset] Check for the Null table and not nullptr to detect failure to find a table in glyf accelerator.
    
  - [subset] Fix to debug message.
    
  - [subset] don't use pointers returned from push after array has resized in hb-subset-glyf.cc
    
  - [subset] Fixed out of bounds read when subsetting hdmx.
    
  - [subset] Disable glyf accelerator_t methods if it didn't successfully init.
    
  - [subset] Fix infinite loop in there are more then 32 tables.
    
  - [subset] Add a fix for segfault in hmtx/vmtx subsetting code.
    
  - [subset] Add a test demonstrating a seg fault while subsetting hmtx.
    
  - [subset] Restore subset to hb-subset-fuzzer.
    
  - [dwrite] Use new again and enable the build on msys2 bots (#890)
    
    
  - Appropriate fix for msys2 bot fail on gen-def.py (#894)
    
    
  - Do feature test before adding -Bsymbolic-functions, autotools part (#892)
    
    
  - Do feature test before adding -Bsymbolic-functions, cmake part (#889)
    
    
  - [cmake] Don't hide symbols by default (#891)
    
    But keep use of cmake idiomatic way of making inlines hidden
  - [subset] Test not linking libharfbuzz-subset-fuzzing into hb-subset-fuzzer.
    
  - [subset] Test hb-shape-fuzzer in run-subset-fuzzer-tests.
    
  - [subset] make libharfbuzz-subset-fuzzing.la depend on lib target.
    
  - [subset] %d -> %zu
    
  - [subset] Add some more logging to hb-subset-fuzzer.
    
  - [subset] Fix run-shape-fuzzer-tests.py. It was generating incorrect paths for input fonts.
    
  - [subset] Add more verbose output for subset fuzzer test.
    
  - [subset] Rename hb-fuzzer -> hb-shape-fuzzer.
    
  - [subset] Add rub-subset-fuzzer-tests.py to dist files.
    
  - [subset] Add a test runner for hb-subset-fuzzer and cmake build config.
    
  - [subset] Fix fuzzing build for hb-subset-fuzzer.
    
  - [subset] Add missing destroy of subsetting result in subset fuzzer.
    
  - [subset] First pass at setting up a fuzzing program for hb-subset.
    
  - [util] Remove line buffering
    
    Something weird seems to be going on. Just kill it.
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/888
    
  - Remove extra stdbool includes
    
    They are handled in our common header.
    
  - Add NameID
    
  - [color/COLR] Simplify
    
  - [color/COLR] Clean up
    
  - [color/COLR] Fix bad sanitize
    
    Bad bad bad bad code. Don't do that. If compiler's not happy, understand why.
    
  - [color/COLR] Clean up
    
  - [color/cbdt] Clean up
    
  - Revert "hb-private.hh: Add fallback implementation for round()"
    
    This reverts commit b9dcbb1f8312d8606b230f75594d40b7d4087004.
    
    This is gross. Should be only done if a specific macro is defined. Not the other way
    around. This fails my build as autotools companions where not added anyway.
    
  - Merge pull request #886 from madig/only-export-visible-symbols
    
    CMake: hide symbols by default on non-MSVC, define export attribute
  - Enable implicit symbol hiding for all libraries, static and shared
    
    This covers all built libraries now and both static and shared builds.
    
  - [dwrite] GCC/mingw/msys2 compatibility (#884)
    
    
  - [ci] Trying to fix gen-def issue on appveyor (#885)
    
    
  - CMake: hide symbols by default on non-MSVC, define export attribute
    
    This change makes sure that non-MSVC builds using CMake properly hide
    non-exported functions.
    
  - Merge pull request #877 from fanc999/master.msvc
    
    Fix CMake builds on Windows, MSVC in particular
  - CMake: Fix utility program installation
    
    Put in the utility program that was missed in installation by replacing
    the one that was duplicated.
    
  - CMake: Fix introspection on Windows
    
    The list of source files to pass to g-ir-scanner is becoming too
    long for Windows, as Windows imposes a 8192-character limit for command
    lines, so we need to first transform that list into a listings file, and
    then use the --filelist option for g-ir-scanner to build the
    introspection files.
    
  - test/api: Fix building subset tests
    
    Include stdbool.h in hb-setset-test.h instead of in the individual
    sources, if it is found; otherwise use a simplistic fallback for it if
    it is not found.
    
    Also declare variables at the top of the block, to build on pre-C99
    compiliers.
    
  - CMake: Fix running tests on Windows
    
    For the API tests, output the test programs at $(TOP_BUILDDIR) so that
    the freshly-built DLLs will be available for the test programs.  For
    those that are run through the Python wrapper scripts, use
    ${PYTHON_EXECUTABLE} instead of plain 'python' in case the Python
    interpreter is not in the PATH.
    
  - hb-private.hh: Add fallback implementation for round()
    
    Add a simplistic round() implementation for our purposes, used when the
    compiler does not support round() directly.
    
  - configure.ac/CMake: Check for round() and stdbool.h
    
    Not all the compilers that HarfBuzz is buildable on supports round() and
    has the header stdbool.h, so we check for them and define HAVE_ROUND and
    HAVE_STDBOOL_H repsectively in our CFLAGS so that we include them only
    when they are found, or use fallback implementations when necessary.
    
    Also include FindPythonInterp earlier as we need PYTHON_EXECUTABLE to be
    set for running the tests.
    
  - [ot-color/SVG] Minor (#878)
    
    
  - [sbix] Clean up
    
  - [ot-color] SVG table implementation (#874)
    
    
  - [ot-color] sbix table implementation (#870)
    
    
  - [dev-run] minor
  - Merge pull request #872 from googlefonts/drop-tables
    
    [subset] Drop the same tables by default as fontTools does.
  - Make subset test runner compatible with py3
    
    Fixes #873
  - [ci] Enable subset tests on ArchLinux to test
    
    This makes ArchLinux bots fail, a starting point to #873
  - [subset] Drop the same tables by default as fontTools does.
    
  - Merge pull request #871 from googlefonts/mplus
    
    [subset] Add a Japanese font to the subset integration tests.
  - [subset] Drop cmap 12, platform 0 tables from Mplus1p expected files.
    
  - [subset] Fix deadlock waiting for process output in subset test runner.
    
  - [subset] add some extra logging to subset run-tests.py.
    
  - [subset] Add japanese font file to subset integration tests.
    
  - Merge pull request #868 from googlefonts/post
    
    [subset] Drop glyph names from post when subsetting.
  - [subset] use create_sub_blob instead of manually copying the post table.
    
  - [subset] Unit test to check that post subsetting drops glyph names.
    
  - [subset] drop all glyph names from the post table.
    
  - Merge pull request #867 from googlefonts/vmtx
    
    [subset] Add vmtx subsetting.
  - [subset] fix author.
    
  - [subset] s/hmetrics/vmetrics.
    
  - [subset] cleanup.
    
  - [subset] add unit tests for vmtx subsetting.
    
  - [subset] Skip subsetting vhea.
    
  - [subset] Subset vmtx if present.
    
  - [test] Fix build with older glib
    
  - 1.7.6
    
  - [ot] Comment out AAT include
    
  - Remove hb-ot-color.h
    
    So I can make a release.
    
  - [ot] Remove hb-ot-base.h
    
    BASE table API will go into hb-ot-layout.h.
    
  - [set] Fix algebra
    
    Was totally b0rked. Ouch!
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/863
    
  - [set] Minor
    
    In preparation to fix https://github.com/harfbuzz/harfbuzz/issues/863
    
    Binary operations are sets are completely broken. Ouch.
    
  - Minor
    
  - Sign
    
  - [set] add a test demonstrating a bug in hb_set_union.
    
  - [ci] Enable -Werror=unused (#862)
    
    
  - [ot-color] Further improvements on COLR/CPAL implementation (#859)
    
    * Implemented a bsearch on get_base_glyph_record
    * Made get_color_record_argb actually work
  - [dev-run] an option to open using a GUI app
  - [ci] minor, bring back the removed assertion
  - [ci] minor
  - [aat/kerx] Add a TODO
  - [ot-color] Move cbdt to the namespace (#860)
    
    
  - [ci] Remove --coverage as use of --enable-code-coverage
  - [ci] Don't run coveralls on freetype folder
  - [ci] Remove failing check on run-coveralls
  - Add lcov tool for coverage tests
  - [ci] Enable code coverage on Travis Linux builds
  - Enable coverage test on autotools (#857)
    
    
  - [ot-color] Move the related tables to hb-ot-color-* (#858)
    
    
  - [COLR/CPAL] Provide enough helper for rasterization (#855)
    
    
  - [COLR] Revert previous sanitization on the table
    
    That sanitization wasn't right, firstLayerIndex is an index from beginning of the Layer Records
    not the table itself.
  - [aat/kerx] Improve format 6 subtable
  - [aat/kerx] Make parsing of the table actually work (#850)
    
    
  - [COLR] Sanitize BaseGlyphRecord (#854)
    
    
  - [CPAL] Fix version checking logic on sanitizer (#851)
    
    
  - [test] Add test suite for Brahmi Number Joiners
    
    https://github.com/harfbuzz/harfbuzz/pull/660
    
  - [subset] In subset integration test pass output through ots-sanitize if present.
    
  - Merge pull request #845 from googlefonts/drophints
    
    [subset] drop hints from composites
  - [subset] kick the build
    
  - [subset] extract a method to flip off composite instruction flag
    
  - Use old project location of coverity
    
    https://github.com/harfbuzz/harfbuzz/commit/8089711a61687d565f207c56d3d2b658f514d7ab#commitcomment-27835452
  - Merge pull request #847 from ebraminio/colr
    
    [colr] Implement
  - [colr] Implement
    
  - Merge pull request #841 from ebraminio/color
    
    Support CPAL table
  - [cmake] cleanup (#846)
    
    
  - [CPAL] Refactor and address the reviews
    
  - [subset] remove WE_HAVE_INSTRUCTIONS from composites when dropping hints
    
  - [subset] update the test file for composite, fix an offset calculation
    
  - Merge branch 'expand-tests' of github.com:googlefonts/harfbuzz into drophints
    
  - [subset] Add drop hinting profile to full-font.tests
    
  - [subset] Add a drop hints profile to basics.tests
    
  - [subset] apply subset profiles (flags) to the subset integration tests.
    
  - [subset] add expected/full-font to dist files.
    
  - [subset] Add subset integration tests using the full roboto font.
    
  - [subset] Add some more variations of the basic test.
    
  - [subset] add a (failing for now) test for composite glyf hint dropping
    
  - Merge pull request #842 from googlefonts/maxp
    
    [subset] when dropping hints, clear hint related fields in maxp.
  - [subset] minor fixes in hb-ot-maxp-table.hh
    
  - [subset] whitespace for hb-ot-maxp-table.hh
    
  - [subset] Add maxpV1Tail instead of defining a struct inside maxp for v1 data.
    
  - [subset] when dropping hints, clear hint related fields in maxp.
    
  - [BASE] More
    
  - [BASE] Clean up first 29%
    
  - Merge with master
    
  - Merge pull request #838 from harfbuzz/BASE
    
    BASE table
  - Remove public API of the branch
    
  - Merge pull request #818 from googlefonts/drophints
    
    [subset] Drop hints
  - [subset] clearer name for trim() and better comment about composite handling, per review feedback
    
  - Merge pull request #840 from googlefonts/os2
    
    [subset] During os2 subsetting update ulUnicodeRange[]c
  - [subset] update to comment in hb-ot-os2-unicode-ranges.hh
    
  - [subset] small cleanups in hb-ot-os2-table.
    
  - [subset] small updates to gen-unicode-ranges.py
    
  - [subset] Move util/generated-unicode-ranges.py to src/gen-unicode-ranges.py
    
  - [subset] unsigned int -> hb_codepoint_t.
    
  - [subset] const in _compare_range.
    
  - [subset] Add comment to os2UnicodeRangesSorted.
    
  - [subset] Fix incorrect index.
    
  - [subset] Add special case handling of bit 57 in os2 ulUnicodeRange.
    
  - [subset] Add python util that was used to generated hb-ot-os2-unicode-ranges.hh
    
  - [subset] Add cmake build def for test-unicode-ranges.
    
  - [subset] Rename hb-os2-unicode-ranges.cc to test-unicode-ranges.cc.
    
  - [subset] set ulUnicodeRange[] in os2.
    
  - [subset] Move hb-ot-os2-unicode-ranges into a cc file with a helper methods and tests.
    
  - [subset] Add hb-ot-os2-unicode-ranges.hh, a map of os2 unicode ranges.
    
  - [dev-run] show images using iTerm2 images feature
  - [aat/ankr] Define Anchor struct
    
  - Minor
    
  - [aat/ankr] Minor
    
    DEFINE_SIZE_MIN is to be used only in rare cases. For fixed-size structs
    we want DEFINE_SIZE_STATIC.
    
  - [aat/ankr] Hook up Lookup table
    
  - [aat/ankr] Simplify
    
  - [aat/trak] Simplify sanitize()
    
  - [aat/trak] Clean up
    
    We always just used "unsigned int" for counter values. There's
    no use for uint16_t outside of a struct.
    
    Also, no need for explict casting where implicit does.
    
  - [aat] trak sanitization
    
  - [aat] minor
    
    Ops, this was done for testing
  - Minor
    
  - [aat/trak] Minor
    
    Maybe we should make DEFINE_* make structs uncopyable.
    
  - [aat] Implement ankr
    
  - [BASE] Minor
    
  - Merge remote-tracking branch 'eroux/add-base'
    
  - [ci] Add clang O3/O0 testers (#834)
    
    
  - Workaround for old automake on Travis Linux images
    
    https://github.com/harfbuzz/harfbuzz/pull/821#issuecomment-368116538
    
  - Add -Werror=unused-function check to Travis (#832)
    
    
  - [aat] Implement trak logic (#816)
    
    
  - Include hb-version.h in git (#825)
    
    
  - [subset] update hdmx test to create input explicitly
    
  - [subset] format tweak, doc string
    
  - Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into drophints
    
  - [subset] keep glyph trim separate of more general get_offset
    
  - [subset] zero glyf and loca memory before writing so pads are clean. Test just the part of maxp we care about
    
  - Merge pull request #829 from googlefonts/test-checksum
    
    [subset] Caclculate head table checksum adjustment
  - [subset] Caclculate head table checksum adjustment
    
    Test still fails, because we do not serialize tables in the same
    order that fonttools subsetter does.
    
  - Merge pull request #828 from googlefonts/mem-fixes
    
    [subset] Fix several memory leaks in subsetting.
  - [subset] Fix checksum calc out-of-bounds access
    
  - [subset] Fix memory leak in hb-subset-glyf.
    
  - [subset] Fix memory leak in hb-subset-plan.
    
  - [subset] Fix memory leak in hb-subset.
    
  - [subset] Fix memory leak in cmap subsetting.
    
  - [subset] Fix memory leak in hmtx subsetting.
    
  - [subset] Fix memory leak in subset face destroy.
    
  - autoconf: provide a harfbuzz-config for use from CMake (#822)
    
    
  - Clean up check-defs and check-symbols (#821)
    
    Also, call c++filt on their results.
    
    Also build and fix and check harfbuzz-gobject.def
    
    Also changes harfbuzz-gobject to distribute generated enum sources.
  - [subset] clone trim logic from fonttools glyf handling
    
  - Merge pull request #823 from googlefonts/hdmx
    
    [subset] Add hdmx subsetting.
  - [subset] Remove commented code from run-tests.py.
    
  - [subset] Update expected files for subsetting integration test to not include cmap 4.
    
  - [subset] Fix checksum clearning in subset test diff. Add an updated expected file (has cmap4 restored).
    
  - [subset] Don't compare actual to itself in Fix test/subset/run-tests. Print a diff on failure.
    
  - [hdmx] Fix sanitize()
    
  - [hdmx] Minor
    
  - [hdmx] Move DeviceRecord to toplevel again
    
    More readable.
    
  - [subset] More complete sanitization implementation for hdmx.
    
  - [subset] Formatting and comments in hdmx.
    
  - [subset] In hb-ot-hdmx-table, s/glyf/hdmx.
    
  - [subset] Fail subset if a table fails to sanitize.
    
  - [subset] Add a unit test for hdmx subsetting.
    
  - [subset] Enable hdmx subsetting.
    
  - [subset] Move DeviceRecord inside of hdmx.
    
  - [subset] Add hdmx subsetting implementation.
    
  - [subset] In hdmx serialize set the correct value of sizeDeviceRecord.
    
  - [subset] When serializing a DeviceRecord in hdmx pad to make 32 bit aligned.
    
  - [subset] Begin implementing serialize for hdmx.
    
  - [subset] Sketch out a basic hb-ot-hdmx.hh.
    
  - [util] Implement ppem/ptem on hb-{shape,view} (#811)
    
    
  - [dev-run] minor
  - [dev-run] Add gdb/lldb shortcuts
  - [subset] sketch out dropping in-glyf instructions. Sometimes yields differnet size glyphs than fonttools, possibly due to padding not being corrected
    
  - [subset] keep the result of _subset
    
  - Add two more ragel-generated headers
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/817
    
  - [subset] drop hint tables if so flagged. Still need to dump glyf instructions.
    
  - Add .editorconfig (#810)
    
    More information: http://editorconfig.org/
  - [subset] add --hinting flag
    
  - [subset] keep the result of _subset
    
  - Use HB_SET_VALUE_INVALID consistently
    
  - [subset] fix calculation of range shiftz. Should be 16 * len - searchRange not 16 * (len - searchRange).
    
  - [subset] Reverse table order for font serialization to match what OTS expects.
    
  - [subset] sanity check glyph data writes during glyph subsetting to ensure they are inbounds.
    
  - [subset] Sanity check that loca writes are inbounds.
    
  - Merge pull request #812 from googlefonts/cleanup
    
    Clean up of glyf subsetting.
  - [aat] Cosmetic touch-ups to trak table
    
  - Add Ragel-generated files to git
    
    I know it's bad form; I know I've said no to this multiple times...
    But this is part of an experiment to see if we can make rolling HarfBuzz
    into Chrome much faster. That will give us a lot more testing exposure
    that currently Chrome does.
    
    Doing this while those files are still considered ignored by our
    gitignore rules; will see how that flies.
    
  - [subset] Switch to hb_blob_copy_writable_or_fail in glyf subsetting.
    
  - [subset] Move glyf subsetting code into hb-ot-glyf-table.hh
    
  - Don't use %zu
    
    Some of our bots / compilers don't like it. Wasn't caught by bots because this
    is only in debug code.
    
    https://github.com/harfbuzz/harfbuzz/pull/809/commits/825ad378e0f0e6e6bb690894a0d5d25f198be21b
    
  - [dev-run] minor
  - [dev-run] Support autotools builds
  - Use %zu format specifier for size_t to fix cross platform build
    
    Fixes Chromium Android builds, compare
    https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/491787
    
  - Change Alpine and ArchLinux bot to test O3 and O0 on gcc, #801
  - [aat] First dig on 'trak'
    
  - Ugh. Really fix build.
    
  - Fix build after previous commit
    
  - [subset] Don't include hb-subset.h from hb.h
    
  - Check availability of entr instead now that this works with it
  - Simplify hb-fuzzer output printing and fix ArchLinux bot
  - Test debug builds on ArchLinux bot
    
    Fixes #805
  - Limit how much work sanitize() can do
    
    Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6022
    
  - [aat] Minor
    
  - Fix debug build
    
    Context needs to be called 'c'. The TRACE_* rely on that.
    
  - [aat] Silence warning
    
  - [ci] Make AppVeyor less noisy
    
  - Readjust mark attachment heuristic a bit more
    
    Previously adjusted logic could fail if nothing around was ligated,
    and something moved.  This should take care of that.
    
    CC https://github.com/harfbuzz/harfbuzz/issues/740
    
  - [test] Add test for https://github.com/harfbuzz/harfbuzz/issues/740
    
  - [aat] First dig on 'kerx' (#704)
    
    
  - Merge pull request #796 from ebraminio/dev-run
    
    Add a continuous builder using fswatch
  - Remove unused check
    
  - Add a continuous builder using fswatch
    
  - [test] Fix a couple of coverity_scan issues
    
  - Another attempt on fixing coverity
    
    I hope I am in a correct direction at least
  - Merge pull request #800 from harfbuzz/bitops
    
    Optimize set through optimized bit operations
  - Fix BitScanForward() usage
    
    Should fix Win64 bot.
    
  - Merge branch 'master' into bitops
  - Do not mark the first glyph as unsafe to break
    
    Fixes #791.
    
  - [test] Remove unused var
    
  - Update outdated TODO file
    
  - [test/api] Distribute all fonts
    
  - Misc fixes
    
    Should bring bag djgpp bot.
    
  - [subset] add a glyf subsetting test for a font with composite glyphs.
    
  - [subset] missing return.
    
  - [subset] Add support for updating reference gids in components to their new values.
    
  - [subset] Refactor composite glyf iteration code into an Iterator outside of the accelerator.
    
  - [subset] Use gids_to_retain_sorted to produce old gid -> new gid mapping since it now has the more complete set.
    
  - [subset] Use complex glyph closure to populate gids_to_retain_sorted.
    
  - [subset] add constant to get_composite and in_table methods in hb-ot-glyf-table
    
  - [subset] Add a DFS search to produce a closure of composite glyphs.
    
  - [subset] add helper methods to glyf accelerator for reading composite glyph information.
    
  - Another bitops fallback fix
    
    I'm confident that all bugs are hashed out now.
    
  - Another bitops fallback impl fix
    
  - [set] Implement iteration using bitop intrinsics
    
  - Fix wide bitops implemenetation
    
  - [set] Readjust parameters
    
  - Fix bitops fallback impl
    
  - Flesh out other bit ops some more for 128bit as well
    
  - Clean up bit functions
    
    Compile all code-paths possible, to better catch errors.
    Also enable MSVC ones on mingw which seems to support them.
    
  - Improve _hb_popcount()
    
    Support 128bit type.
    
  - Fix warnings
    
  - Enable C99 if available
    
    Hopefully we can now mix-and-match code and declaration in the C test files.
    
  - Merge pull request #792 from googlefonts/master
    
    Support more tables in subsetter
  - That didn't work...
    
  - Add mingw32.sh and mingw64.sh
    
  - Remove checking macros __OPTIMIZE__ for MSVC
    
    Visual C++ compiler doesn't define macros __OPTIMIZE__  when optimizations enabled
    
  - Make this work for old versions of automake
    
  - Print only the failed log
    
  - Simplify calls to collect-logs.sh
    
  - [subset] try to get more info from bot where g_assert_cmpmem fails
    
  - [subset] fix int type for blob length in hb-subset-test.h
    
  - Merge branch 'master' of https://github.com/harfbuzz/harfbuzz
    
  - Fix hb-private.hh compile issue
  - Use _BitScanForward and _BitScanReverse on MSVC
  - [subset] apparently C99 is too much to ask in 2018
    
  - [subset] fix format specifier for size_t
    
  - [subset] fix no matching function MIN in djgpp
    
  - [subset] add files to EXTRA_DIST
    
  - [subset] correct bug introduced to get_advance
    
  - [subset] remove unused decl
    
  - Move collect_logs to .ci dir
    
    Next to other CI scripts.
    
  - [subset] hmtx space bracket. authors++
    
  - [subset] cmap space bracket
    
  - [subset] space bracket
    
  - [subset] maxp copy writeable fn
    
  - [subset] hmtx use copy writeable fn instead of direct memory
    
  - [subset] whitespace
    
  - [subset] Minor
    
  - [test] Reinstate test/shaping/data/in-house/tests/myanmar-syllable.tests
    
  - [subset] Merge remote-tracking branch 'googlefonts/master'
    
  - [subset] Don't fail on different checksum adjustment in subsetting tests.
    
  - [subset] Fix hhea subsetting and clean up some memory leaks.
    
  - [subset] Add missing face reference in hb-subset-plan plus ensure all struct members are cleaned up on destroy.
    
  - [subset] In hb-subset-test use hb_set_union instead of manually copying set.
    
  - [subset] Restore hb_face_data_destroy to be internal.
    
  - [subset] Fix memory leak in hb-ot-{maxp,os2}. Plus some formatting.
    
  - Another linker tweaking
    
    Trying to fix this warning:
    cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C
    
    Let's see what the clang bots think of it.
    
  - [set] Tune size again
    
    Switch from a 128+64 hierarchy, to 32+32. New page size is 1024.
    This should make set iteration faster, without affecting other op
    performances much.
    
  - [subset] remove TODO that was already done
    
  - [subset] maxp wrong int type, note to use copy_writable_or_fail
    
  - [subset] return bool not hb_bool_t from table::subset
    
  - [subset] Use a supplier instead of memcpy and fix a few unnecessary {}s for cmap
    
  - [subset] add free
    
  - [subset] Give Behdad credit again
    
  - [subset] First pass at hmtx
    
  - Redirect email notifications to another mailing list dedicated for this (#790)
    
    
  - Add .collect_logs and use it on CI bots, fixes #786 (#789)
    
    
  - [subset] Fix codepoint iteration in hb-subset-test.
    
  - Another try
    
  - Fix compile error in hb-subset-test.
    
  - [test] Fix warning
    
  - Tweak Makefile some more
    
  - [subset] Allow linking to libstdc++
    
    We want to use it.
    
  - copy all cmap groups at once
    
  - Merge remote-tracking branch 'upstream/master' into fixed
    
  - [subset] Drop GSUB, GDEF, GPOS, and DSIG from subsetter expected test outputs.
    
  - [subset] capitalize dsig.
    
  - [subset] Extract maxp subsetting into hb-ot-maxp-table.
    
  - [subset] Add a test for OS/2 fixes during subsetting.
    
  - [subset] white and add inline in hb-ot-cmap-table.
    
  - [subset] Correct usFirstCharIndex and usLastCharIndex in OS2 table when subsetting.
    
  - Another attempt on fixing the tests on Travis (#788)
    
    
  - [set] Add backwards iterator
    
    New API:
    - hb_set_previous()
    - hb_set_previous_range()
    
  - [set] Allow starting iteration from a non-member of the set
    
  - Add hb_blob_copy_writable_or_fail()
    
    New API:
    - hb_blob_copy_writable_or_fail()
    
  - [subset] Rename constructor to hb_subset_input_create_or_fail()
    
    To signify that unlike rest of library, returns nullptr on failure.
    
  - [use] Add dump-use-data
    
  - [khmer] Add dump-khmer-data
    
  - [myanmar] Add dump-myanmar-data
    
  - [indic] Rename print-indic-table to dump-indic-data
    
    Makes more sense given what this prints, err, dumps.
    
  - [indic] Explicitly number indic_position_t
    
    So it's easier to cross-reference from output of print-indic-table.
    
  - More tweaking linker and linker flags
    
  - [indic] Share some copy/pasta code
    
  - [indic] Add print-indic-table
    
  - [subset] Fix loca offsets
    
    Was writing source font's offsets. Ouch.
    
  - Another tweak at libstdc++ things
    
    To fix this warning:
    
    cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C
    
  - [aat] Minor
    
  - Minor
    
  - [subset] hb_subset_input_t changes
    
  - Disable threadsafe static's for all libraries
    
    Even in libharfbuzz-subset, we still will handle our own threadsafety
    for statics.
    
  - Specify the project name for coverity, trying to fix #785
  - Pass no-libstdc++ flags only to libraries suppressing it
    
  - [subset] Allocate bulk memory with malloc(), not calloc()
    
    We use calloc() to allocate simple structs and set them to zero.
    For bulk memory, use malloc() that doesn't zero.
    
  - Use hb_face_get_upem() instead of face->get_upem()
    
    Such that hmtx accelerator can be used from libharfbuzz-subset.
    
  - [subset] Remove unreachable code
    
    sanitizer.sanitize never return nullptr.
    
  - Allow libharfbuzz-subset to link to libstdc++
    
    We want to use it instead of reinventing hashmap...
    
    Also, don't change linker for ICU since libicu also uses libstdc++.
    
  - Move linker specifying to a better place
    
  - [subset] whitespace
    
  - output format 12 as enc 10 to match how Roboto did it
    
  - basic wiring for a (failing) cmap test
    
  - auto-completed the wrong gids_to_retain
    
  - Use functions to get new gids. Avoid 0; fonttools drops it from cmap.
    
  - [subset] Remove test-subset, testing is planned to be done at the table level here with test/subset covering the complete subsetting operation.
    
  - [subset] added todo in test-subset-glyf.
    
  - [subset] re-enable test-subset-glyf. Refactor to use common functions in hb-subset-test.h
    
  - [subset] Add some helper functions for writing tests around subsetting.
    
  - [subset] Fix loca generation, was previously writing the original glyph starting offset.
    
  - Rename --with-stdcpp → --with-libstdc++
    
    Also improve wording a bit and fix make check in --with-libstdc++=yes.
    
  - we love all our groups
    
  - drop GDEF, GPOS, GSUB, and dsig
    
  - [subset] Set the new number of glyphs in maxp.
    
  - Don't force loca version to long.
    
  - Destroy the subset plan at the end of subsetting.
    
  - Build a working cmap format 12
    
  - subset for real
    
  - C-style comments
    
  - Fix symbol exporting issue on msys2 and ✅ bringing all the bots (#781)
    
    
  - Minor
  - Minor, don't skip the whole test when one .def file not found
  - Apply check-defs.sh to -icu and -subset, toward mingw fix (#780)
    
    
  - Add --with-stdcpp for ossfuzzer and mupdf use (#770)
    
    
  - minor
  - Add Travis based Coverity trigger (#778)
    
    
  - Remove linker selection from hb-ucdn
    
    Since this is a convenience library, it's not actually linked. Or so I think.
    Hoping this might fix this Appveyor failure:
    
    https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/9884jyb5vryja9pw
    
    Making all in hb-ucdn
    make[4]: Entering directory '/c/projects/harfbuzz/src/hb-ucdn'
      CC       libhb_ucdn_la-ucdn.lo
      GEN      libhb-ucdn.la
    /bin/sh: libhb_ucdn_la-ucdn.lo: command not found
    make[4]: *** [Makefile:404: libhb-ucdn.la] Error 127
    make[4]: Leaving directory '/c/projects/harfbuzz/src/hb-ucdn'
    make[3]: *** [Makefile:2548: all-recursive] Error 1
    make[3]: Leaving directory '/c/projects/harfbuzz/src'
    make[2]: *** [Makefile:1382: all] Error 2
    make[2]: Leaving directory '/c/projects/harfbuzz/src'
    make[1]: *** [Makefile:486: all-recursive] Error 1
    make[1]: Leaving directory '/c/projects/harfbuzz'
    make: *** [Makefile:418: all] Error 2
    
  - Add MSVC to no-visibility list
    
  - Add Sun compiler to no-visibility as well
    
    Fixes https://github.com/harfbuzz/harfbuzz/pull/776
    
  - Fix more warnings
    
  - Another try at fixing multiple-defintion of NullPool
    
    This one might do it...
    
  - [docs] Minor update
    
  - [subset] Another fixup
    
    I broke this in c31fcf4c58d96eb7d9781a986991b1a79ac7be44
    
  - Try at fixing multiple-definition of NullPool
    
    If we don't have visibility, make NullPool static.
    
  - [subset] Use auto_array_t where it does make sense
    
    Better fix for https://github.com/harfbuzz/harfbuzz/pull/775
    
  - Minor
    
  - Install fonttools on two bots and enable cmake hb-subset test (#777)
    
    
  - Initialize bad_indices on hb-subset (#775)
    
    
  - fix gobject compile issue (#773)
    
    
  - [gpos] Adjust mark attachment heuristic
    
    Hopefully it...
    fixes https://github.com/harfbuzz/harfbuzz/issues/740
    
  - More fixes
    
  - Misc warning fixes
    
  - Fix djgpp bot
    
  - Minor
    
  - Favor use of static instead HB_INTERNAL
    
  - [test] Disable test-subset-glyf for now
    
  - More fixes
    
    test-subset-glyf still failing. No idea why :(
    
  - Fix more build issues
    
    Hopefully most bots come back with this...
    
  - Hide more symbols of hb-subset (#771)
    
    
  - [subset] Replace auto_array with prealloced_array
    
    auto_array has constructor/destructor. Cannot be used in POD object, as the clang
    bots all noticed...
    
  - Fix some other bots
    
  - [util] Remove use of ssize_t which was failing on MSVC
    
  - Minor
    
  - Fix symbol exporting and libstdc++ linkage of hb-subset (#769)
    
    
  - [aat] Add buffer messages
    
  - Minor
    
  - [subset] Merge remote-tracking branch 'googlefonts/master'
    
  - Replace Supplier.advance with Supplier::operator+=
    
  - [util] Use setlinebuf() if present
    
    To work around mysterious bug on OS X.
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/727
    
  - Fix cast warnings on clang (#768)
    
    
  - In glyf subsetting add suport for writing out a short loca table when possible.
    
  - First pass at building a cmap
    
  - Check for failures from add table.
    
  - add missing return
    
  - Keep a second set of glyph ids in subset plan which is sorted by glyph id and always has gid 0
    
  - Formatting for hb-subset-plan.
    
  - Try fixing build with Sun Studio
    
    Trying to fix:
    https://circleci.com/gh/harfbuzz/harfbuzz/6635
    
    Also part of:
    https://github.com/harfbuzz/harfbuzz/issues/630
    
  - Return empty face on hb_subset failure instead of null. Plus some minor cleanups for _add_head_and_set_loca_version
    
  - Typo
    
  - [docs] Improve UNSAFE_TO_BREAK docs
    
  - Documentation for HB_GLYPH_FLAG_UNSAFE_TO_BREAK.
    
    HB_GLYPH_FLAG_UNSAFE_TO_BREAK means that the glyph with this flag is somehow affected by the previous logical glyph (the previous index in the buffer if ltr and the next index if the buffer is rtl). If these two glyphs are separated by a break (line or otherwise) then the underlying text should be re-shaped on both sides up to corresponding position in the text of some glyph not marked with this flag.
  - Update head table with loca format selected b…
@khaledhosny khaledhosny added the subset hb-subset related bugs label Jul 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
subset hb-subset related bugs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants