Commit 28018d42a83f8c8547fb5d3d5e697f187e23eb44

Alexei Podtelezhnikov 2014-08-12T00:26:16

[base] Handle collapsed outlines to avoid undefined FT_MSB. * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.

diff --git a/ChangeLog b/ChangeLog
index fc0bd5a..48e3115 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2014-08-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
+	[base] Handle collapsed outlines to avoid undefined FT_MSB.
+
+	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
+
+2014-08-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
 	[base] Restore FT_MulFix inlining.
 
 	* include/freetype.h (FT_MulFix): Unconditionally defined.
diff --git a/src/base/ftoutln.c b/src/base/ftoutln.c
index 4a39dcd..632b6d2 100644
--- a/src/base/ftoutln.c
+++ b/src/base/ftoutln.c
@@ -1045,6 +1045,10 @@
 
     FT_Outline_Get_CBox( outline, &cbox );
 
+    /* Handle collapsed outlines to avoid undefined FT_MSB. */
+    if ( cbox.xMin == cbox.xMax || cbox.yMin == cbox.yMax )
+      return FT_ORIENTATION_NONE;
+
     xshift = FT_MSB( FT_ABS( cbox.xMax ) | FT_ABS( cbox.xMin ) ) - 14;
     xshift = FT_MAX( xshift, 0 );