Make hb_tag_from_string(NULL) return HB_TAG_NONE
authorBehdad Esfahbod <behdad@behdad.org>
Mon, 11 Apr 2011 17:27:30 +0000 (13:27 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 11 Apr 2011 17:27:30 +0000 (13:27 -0400)
src/hb-common.c
test/test-types.c

index 3dfdbe8..90cba4e 100644 (file)
@@ -35,6 +35,9 @@ hb_tag_from_string (const char *s)
   char tag[4];
   unsigned int i;
 
+  if (!s)
+    return HB_TAG_NONE;
+
   for (i = 0; i < 4 && s[i]; i++)
     tag[i] = s[i];
   for (; i < 4; i++)
index 0f32e42..eb13f13 100644 (file)
@@ -83,6 +83,7 @@ static void
 test_types_tag (void)
 {
   g_assert_cmphex (HB_TAG_NONE, ==, 0);
+
   g_assert_cmphex (HB_TAG ('a','B','c','D'), ==, 0x61426344);
 
   g_assert_cmphex (HB_TAG_CHAR4 ("aBcD"), ==, 0x61426344);
@@ -93,6 +94,8 @@ test_types_tag (void)
   g_assert_cmphex (hb_tag_from_string ("aB"),    ==, 0x61422020);
   g_assert_cmphex (hb_tag_from_string ("a"),     ==, 0x61202020);
   g_assert_cmphex (hb_tag_from_string (""),      ==, 0x20202020);
+
+  g_assert_cmphex (hb_tag_from_string (NULL),    ==, HB_TAG_NONE);
 }
 
 int