Don't check null terminaion of source in hb_codepoint_parse

This isn't what intended originally, just checking if consumed
all the buffer is enough.
diff --git a/src/hb-algs.hh b/src/hb-algs.hh
index 66433a2..9caf5e9 100644
--- a/src/hb-algs.hh
+++ b/src/hb-algs.hh
@@ -902,8 +902,8 @@
   const char *end = p + len;
   if (unlikely (!hb_parse_uint (&p, end, &v, base))) return false;
 
-  /* Pain because we don't know whether s is nul-terminated. */
-  if (unlikely (p != end && *p)) return false;
+  /* Check if parser consumed all of the buffer */
+  if (unlikely (p != end)) return false;
 
   *out = v;
   return true;
diff --git a/src/test-number.cc b/src/test-number.cc
index 8ec66ee..0a33f7f 100644
--- a/src/test-number.cc
+++ b/src/test-number.cc
@@ -40,6 +40,7 @@
     assert (pv == 123);
     assert (pp - str == 3);
     assert (end - pp == 0);
+    assert (!*end);
   }
 
   {
@@ -52,6 +53,20 @@
     assert (pv == 123);
     assert (pp - str == 3);
     assert (end - pp == 0);
+    assert (!*end);
+  }
+
+  {
+    const char str[] = "12F";
+    const char *pp = str;
+    const char *end = str + 3;
+
+    unsigned int pv;
+    assert (hb_parse_uint (&pp, end, &pv, 16));
+    assert (pv == 0x12F);
+    assert (pp - str == 3);
+    assert (end - pp == 0);
+    assert (!*end);
   }
 
   {
@@ -64,6 +79,7 @@
     assert (pv == -123);
     assert (pp - str == 4);
     assert (end - pp == 0);
+    assert (!*end);
   }
 
   {
@@ -77,6 +93,7 @@
     assert (pv == 123);
     assert (pp - str == 3);
     assert (end - pp == 1);
+    assert (!*end);
   }
 
   {
@@ -89,7 +106,20 @@
     assert (hb_parse_uint (&pp, end, &pv));
     assert (pv == 123);
     assert (pp - str == 3);
-    assert (end - pp == 2); /* Similar to what hb_codepoint_parse needs */
+    assert (end - pp == 2);
+  }
+
+  {
+    const char str[] = "123V";
+    const char *pp = str;
+    assert (ARRAY_LENGTH (str) == 5);
+    const char *end = str + ARRAY_LENGTH (str);
+
+    unsigned int pv;
+    assert (hb_parse_uint (&pp, end, &pv));
+    assert (pv == 123);
+    assert (pp - str == 3);
+    assert (end - pp == 2);
   }
 
   {