[CBDT] Minor
diff --git a/src/hb-ot-cbdt-table.hh b/src/hb-ot-cbdt-table.hh
index 7269688..52897ab 100644
--- a/src/hb-ot-cbdt-table.hh
+++ b/src/hb-ot-cbdt-table.hh
@@ -56,6 +56,15 @@
   DEFINE_SIZE_STATIC(5);
 };
 
+struct BigGlyphMetrics : SmallGlyphMetrics
+{
+  CHAR vertBearingX;
+  CHAR vertBearingY;
+  BYTE vertAdvance;
+
+  DEFINE_SIZE_STATIC(8);
+};
+
 struct SBitLineMetrics
 {
   inline bool sanitize (hb_sanitize_context_t *c) const
@@ -171,6 +180,7 @@
   IndexSubtableHeader	header;
   IndexSubtableFormat1	format1;
   IndexSubtableFormat3	format3;
+  /* TODO: Format 2, 4, 5. */
   } u;
   public:
   DEFINE_SIZE_UNION (8, header);
@@ -321,7 +331,6 @@
   {
     /* TODO: Make it possible to select strike. */
 
-    const BitmapSizeTable *sizeTable = &Null(BitmapSizeTable);
     unsigned int count = sizeTables.len;
     for (uint32_t i = 0; i < count; ++i)
     {
@@ -329,15 +338,13 @@
       unsigned int endGlyphIndex = sizeTables.array[i].endGlyphIndex;
       if (startGlyphIndex <= glyph && glyph <= endGlyphIndex)
       {
-	sizeTable = &sizeTables[i];
-	break;
+	*x_ppem = sizeTables[i].ppemX;
+	*y_ppem = sizeTables[i].ppemY;
+	return sizeTables[i].find_table (glyph, this);
       }
     }
 
-    *x_ppem = sizeTable->ppemX;
-    *y_ppem = sizeTable->ppemY;
-
-    return sizeTable->find_table (glyph, this);
+    return NULL;
   }
 
   protected:
diff --git a/src/hb-ot-font.cc b/src/hb-ot-font.cc
index 1b6cea4..df01bc9 100644
--- a/src/hb-ot-font.cc
+++ b/src/hb-ot-font.cc
@@ -246,14 +246,12 @@
   {
     unsigned int x_ppem = upem, y_ppem = upem; /* TODO Use font ppem if available. */
 
-    if (cblc == NULL) {
+    if (cblc == NULL)
       return false;  // Not a color bitmap font.
-    }
 
     const OT::IndexSubtableRecord *subtable_record = this->cblc->find_table(glyph, &x_ppem, &y_ppem);
-    if (subtable_record == NULL) {
+    if (subtable_record == NULL)
       return false;
-    }
 
     if (subtable_record->get_extents (extents))
       return true;
@@ -262,23 +260,27 @@
     if (!subtable_record->get_image_data (glyph, &image_offset, &image_length, &image_format))
       return false;
 
-    if (unlikely (image_offset > cbdt_len || cbdt_len - image_offset < image_length))
-      return false;
-
-    switch (image_format)
     {
-      case 17: {
-	if (unlikely (image_length < OT::GlyphBitmapDataFormat17::min_size))
-	  return false;
+      /* TODO Move the following into CBDT struct when adding more formats. */
 
-	const OT::GlyphBitmapDataFormat17& glyphFormat17 =
-	    OT::StructAtOffset<OT::GlyphBitmapDataFormat17> (this->cbdt, image_offset);
-	glyphFormat17.glyphMetrics.get_extents (extents);
-      }
-      break;
-      default:
-	// TODO: Support other image formats.
+      if (unlikely (image_offset > cbdt_len || cbdt_len - image_offset < image_length))
 	return false;
+
+      switch (image_format)
+      {
+	case 17: {
+	  if (unlikely (image_length < OT::GlyphBitmapDataFormat17::min_size))
+	    return false;
+
+	  const OT::GlyphBitmapDataFormat17& glyphFormat17 =
+	      OT::StructAtOffset<OT::GlyphBitmapDataFormat17> (this->cbdt, image_offset);
+	  glyphFormat17.glyphMetrics.get_extents (extents);
+	}
+	break;
+	default:
+	  // TODO: Support other image formats.
+	  return false;
+      }
     }
 
     /* Convert to the font units. */