[HB] Fix glyph properties
diff --git a/src/hb-ot-layout-common-private.h b/src/hb-ot-layout-common-private.h
index 4477ebf..5cfa62d 100644
--- a/src/hb-ot-layout-common-private.h
+++ b/src/hb-ot-layout-common-private.h
@@ -185,7 +185,7 @@
     {
       const USHORT &markFilteringSet = *(const USHORT*)
 					((const char *) &subTable + subTable.get_size ());
-      flag += markFilteringSet << 16;
+      flag += (markFilteringSet << 16);
     }
     return flag;
   }
@@ -420,8 +420,8 @@
     unsigned int s = ppem_size - startSize;
 
     unsigned int byte = deltaValue[s >> (4 - f)];
-    unsigned int bits = byte >> (16 - (((s & ((1 << (4 - f)) - 1)) + 1) << f));
-    unsigned int mask = 0xFFFF >> (16 - (1 << f));
+    unsigned int bits = (byte >> (16 - (((s & ((1 << (4 - f)) - 1)) + 1) << f)));
+    unsigned int mask = (0xFFFF >> (16 - (1 << f)));
 
     int delta = bits & mask;
 
diff --git a/src/hb-ot-layout-open-private.h b/src/hb-ot-layout-open-private.h
index 0da23ef..6a75eb1 100644
--- a/src/hb-ot-layout-open-private.h
+++ b/src/hb-ot-layout-open-private.h
@@ -301,7 +301,7 @@
 
 struct FixedVersion
 {
-  inline operator uint32_t (void) const { return major << 16 + minor; }
+  inline operator uint32_t (void) const { return (major << 16) + minor; }
 
   USHORT major;
   USHORT minor;
diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc
index 25d1dce..8cff03e 100644
--- a/src/hb-ot-layout.cc
+++ b/src/hb-ot-layout.cc
@@ -153,7 +153,7 @@
 	/* TODO old harfbuzz doesn't always parse mark attachments as it says it was
 	 * introduced without a version bump, so it may not be safe */
 	klass = layout->gdef->get_mark_attachment_type (glyph);
-	return HB_OT_LAYOUT_GLYPH_CLASS_MARK + klass << 8;
+	return HB_OT_LAYOUT_GLYPH_CLASS_MARK + (klass << 8);
   }
 }