[buffer] Add assert_unicode()/assert_glyphs() and use internally
diff --git a/src/hb-buffer-serialize.cc b/src/hb-buffer-serialize.cc
index cd87dae..294b65e 100644
--- a/src/hb-buffer-serialize.cc
+++ b/src/hb-buffer-serialize.cc
@@ -476,8 +476,7 @@
   if (buf_size)
     *buf = '\0';
 
-  assert ((!buffer->len && (buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID)) ||
-          (buffer->content_type == HB_BUFFER_CONTENT_TYPE_GLYPHS));
+  buffer->assert_glyphs ();
 
   if (!buffer->have_positions)
     flags |= HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS;
@@ -574,8 +573,7 @@
   if (buf_size)
     *buf = '\0';
 
-  assert ((!buffer->len && (buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID)) ||
-    (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE));
+  buffer->assert_unicode ();
 
   if (unlikely (start == end))
     return 0;
@@ -749,8 +747,7 @@
     end_ptr = &end;
   *end_ptr = buf;
 
-  assert ((!buffer->len && (buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID)) ||
-          (buffer->content_type == HB_BUFFER_CONTENT_TYPE_GLYPHS));
+  buffer->assert_glyphs ();
 
   if (unlikely (hb_object_is_immutable (buffer)))
   {
@@ -819,9 +816,7 @@
     end_ptr = &end;
   *end_ptr = buf;
 
-  assert ((!buffer->len && (buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID)) ||
-          (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE));
-
+  buffer->assert_unicode ();
 
   if (unlikely (hb_object_is_immutable (buffer)))
   {
diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index 9557ecc..488f491 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -617,8 +617,7 @@
 void
 hb_buffer_t::guess_segment_properties ()
 {
-  assert ((content_type == HB_BUFFER_CONTENT_TYPE_UNICODE) ||
-	  (!len && (content_type == HB_BUFFER_CONTENT_TYPE_INVALID)));
+  assert_unicode ();
 
   /* If script is set to INVALID, guess from buffer contents */
   if (props.script == HB_SCRIPT_INVALID) {
@@ -1532,8 +1531,7 @@
   typedef typename utf_t::codepoint_t T;
   const hb_codepoint_t replacement = buffer->replacement;
 
-  assert ((buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE) ||
-	  (!buffer->len && (buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID)));
+  buffer->assert_unicode ();
 
   if (unlikely (hb_object_is_immutable (buffer)))
     return;
@@ -1853,8 +1851,8 @@
 hb_buffer_normalize_glyphs (hb_buffer_t *buffer)
 {
   assert (buffer->have_positions);
-  assert ((buffer->content_type == HB_BUFFER_CONTENT_TYPE_GLYPHS) ||
-	  (!buffer->len && (buffer->content_type == HB_BUFFER_CONTENT_TYPE_INVALID)));
+
+  buffer->assert_glyphs ();
 
   bool backward = HB_DIRECTION_IS_BACKWARD (buffer->props.direction);
 
diff --git a/src/hb-buffer.hh b/src/hb-buffer.hh
index 86edb94..9cad520 100644
--- a/src/hb-buffer.hh
+++ b/src/hb-buffer.hh
@@ -339,6 +339,16 @@
   bool ensure_inplace (unsigned int size)
   { return likely (!size || size < allocated); }
 
+  void assert_glyphs ()
+  {
+    assert ((content_type == HB_BUFFER_CONTENT_TYPE_GLYPHS) ||
+	    (!len && (content_type == HB_BUFFER_CONTENT_TYPE_INVALID)));
+  }
+  void assert_unicode ()
+  {
+    assert ((content_type == HB_BUFFER_CONTENT_TYPE_UNICODE) ||
+	    (!len && (content_type == HB_BUFFER_CONTENT_TYPE_INVALID)));
+  }
   bool ensure_glyphs ()
   {
     if (unlikely (content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS))
diff --git a/src/hb-shape-plan.cc b/src/hb-shape-plan.cc
index 2e03003..f893c4a 100644
--- a/src/hb-shape-plan.cc
+++ b/src/hb-shape-plan.cc
@@ -401,7 +401,8 @@
     return true;
 
   assert (!hb_object_is_immutable (buffer));
-  assert (buffer->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE);
+
+  buffer->assert_unicode ();
 
   if (unlikely (hb_object_is_inert (shape_plan)))
     return false;