Index: src/ltsh.cc |
diff --git a/src/ltsh.cc b/src/ltsh.cc |
index 9145527dc745ed670a78053bf9f67c03f4dba950..16700daa7ab33cd2120648af5d051e48b9a223a9 100644 |
--- a/src/ltsh.cc |
+++ b/src/ltsh.cc |
@@ -61,12 +61,13 @@ bool ots_ltsh_should_serialise(OpenTypeFile *file) { |
bool ots_ltsh_serialise(OTSStream *out, OpenTypeFile *file) { |
const OpenTypeLTSH *ltsh = file->ltsh; |
- |
- if (!out->WriteU16(ltsh->version) || |
- !out->WriteU16(ltsh->ypels.size())) { |
+ const uint16_t num_ypels = static_cast<uint16_t>(ltsh->ypels.size()); |
+ if (num_ypels != ltsh->ypels.size() || |
+ !out->WriteU16(ltsh->version) || |
+ !out->WriteU16(num_ypels)) { |
return OTS_FAILURE(); |
} |
- for (unsigned i = 0; i < ltsh->ypels.size(); ++i) { |
+ for (uint16_t i = 0; i < num_ypels; ++i) { |
if (!out->Write(&(ltsh->ypels[i]), 1)) { |
return OTS_FAILURE(); |
} |