Bug 1262774 - Cherry-pick upstream fix for broken mark filter set support in harfbuzz. r=jrmuizel a=ritu
authorJonathan Kew <jkew@mozilla.com>
Thu, 07 Apr 2016 13:02:35 +0100
changeset 310516 e6cf7714ab9740f91a68c50d9277dfcf34ffd575
parent 310515 02acaa7a050410141a9e5adedd63393e78a486d0
child 310517 73630aefa1568ea416bafa24421612e4093b05c2
push id9384
push userjkew@mozilla.com
push dateMon, 11 Apr 2016 17:54:46 +0000
treeherdermozilla-aurora@73630aefa156 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel, ritu
bugs1262774
milestone47.0a2
Bug 1262774 - Cherry-pick upstream fix for broken mark filter set support in harfbuzz. r=jrmuizel a=ritu
gfx/harfbuzz/README-mozilla
gfx/harfbuzz/src/hb-open-type-private.hh
--- a/gfx/harfbuzz/README-mozilla
+++ b/gfx/harfbuzz/README-mozilla
@@ -1,20 +1,24 @@
-gfx/harfbuzz status as of 2015-04-25:
+gfx/harfbuzz status as of 2016-04-07:
 
 This directory contains the harfbuzz source from the 'master' branch of
 https://github.com/behdad/harfbuzz.
 
+Current version: 1.2.2
+Plus cherry-picked commit 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8 to fix
+broken mark filter set support.
+
+
 UPDATING:
 
 Note that gfx/harfbuzz/src/hb-version.h is not present in the upstream Git
 repository. It is created at build time by the harfbuzz build system;
 but as we don't use that build system in mozilla, it is necessary to refresh
-this files when updating harfbuzz, and check them into the mozilla tree.
+this file when updating harfbuzz, and check it into the mozilla tree.
 
 The normal approach to updating harfbuzz, therefore, is to pull the latest HB
 source into a scratch directory and do a local build; then copy the original
-sources AND the generated headers mentioned above from the build directory into
+sources AND the generated header mentioned above from the build directory into
 the mozilla tree.
 
-In addition, the src/Makefile.in file here is NOT from upstream, nor is it
-generated from src/Makefile.am (the original harfbuzz version); it is a mozilla-
-specific makefile that is maintained by hand.
+If the collection of source files changes, manual updates to moz.build may be
+needed, as we don't use the upstream makefiles.
--- a/gfx/harfbuzz/src/hb-open-type-private.hh
+++ b/gfx/harfbuzz/src/hb-open-type-private.hh
@@ -737,17 +737,17 @@ struct CheckSum : ULONG
 
 /*
  * Version Numbers
  */
 
 template <typename FixedType=USHORT>
 struct FixedVersion
 {
-  inline uint32_t to_int (void) const { return (major << sizeof(FixedType)) + minor; }
+  inline uint32_t to_int (void) const { return (major << (sizeof(FixedType) * 8)) + minor; }
 
   inline bool sanitize (hb_sanitize_context_t *c) const
   {
     TRACE_SANITIZE (this);
     return_trace (c->check_struct (this));
   }
 
   FixedType major;