[otlayout] Fix up recent Context matching change
Commit 6b65a76b40522a4f57a6fedcbdfc5a4d736f1d3c. "end" was becoming
negative. Was trigerred by Lohit-Kannada 2.5.3 and the sequence:
U+0CB0,U+200D,U+0CBE,U+0CB7,U+0CCD,U+0C9F,U+0CCD,U+0CB0,U+0C97,U+0CB3
Two glyphs were being duplicated.
diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index b778abb..867438a 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -365,8 +365,12 @@
{
assert (i <= len);
idx = i;
+ return true;
}
- else if (out_len < i)
+
+ assert (i <= out_len + (len - idx));
+
+ if (out_len < i)
{
unsigned int count = i - out_len;
if (unlikely (!make_room_for (count, count))) return false;
@@ -388,6 +392,7 @@
out_len -= count;
memmove (info + idx, out_info + out_len, count * sizeof (out_info[0]));
}
+
return true;
}