summaryrefslogtreecommitdiffstats
path: root/gfx/ots/src/hhea.cc
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-11-14 10:07:01 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-11-14 10:07:01 +0100
commit0f8691a48869932cd3de5195f5211c25e4691b21 (patch)
tree829675d64c457be0b447dfbcf9534cc22f83d392 /gfx/ots/src/hhea.cc
parent36975f3865948f3faa959fe386e58b22783bd379 (diff)
downloadUXP-0f8691a48869932cd3de5195f5211c25e4691b21.tar
UXP-0f8691a48869932cd3de5195f5211c25e4691b21.tar.gz
UXP-0f8691a48869932cd3de5195f5211c25e4691b21.tar.lz
UXP-0f8691a48869932cd3de5195f5211c25e4691b21.tar.xz
UXP-0f8691a48869932cd3de5195f5211c25e4691b21.zip
Issue #1288 - Part 4: Update the OpenType Sanitizer component to 8.0.0
Diffstat (limited to 'gfx/ots/src/hhea.cc')
-rw-r--r--gfx/ots/src/hhea.cc44
1 files changed, 9 insertions, 35 deletions
diff --git a/gfx/ots/src/hhea.cc b/gfx/ots/src/hhea.cc
index 624287280..d024aaac4 100644
--- a/gfx/ots/src/hhea.cc
+++ b/gfx/ots/src/hhea.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2009-2017 The OTS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -10,49 +10,23 @@
// hhea - Horizontal Header
// http://www.microsoft.com/typography/otspec/hhea.htm
-#define TABLE_NAME "hhea"
-
namespace ots {
-bool ots_hhea_parse(Font *font, const uint8_t *data, size_t length) {
+bool OpenTypeHHEA::Parse(const uint8_t *data, size_t length) {
Buffer table(data, length);
- OpenTypeHHEA *hhea = new OpenTypeHHEA;
- font->hhea = hhea;
- if (!table.ReadU32(&hhea->header.version)) {
- return OTS_FAILURE_MSG("Failed to read hhea version");
- }
- if (hhea->header.version >> 16 != 1) {
- return OTS_FAILURE_MSG("Bad hhea version of %d", hhea->header.version);
+ if (!table.ReadU32(&this->version)) {
+ return Error("Failed to read table version");
}
-
- if (!ParseMetricsHeader(font, &table, &hhea->header)) {
- return OTS_FAILURE_MSG("Failed to parse horizontal metrics");
+ if (this->version >> 16 != 1) {
+ return Error("Unsupported majorVersion: %d", this->version >> 16);
}
- return true;
+ return OpenTypeMetricsHeader::Parse(data, length);
}
-bool ots_hhea_should_serialise(Font *font) {
- return font->hhea != NULL;
-}
-
-bool ots_hhea_serialise(OTSStream *out, Font *font) {
- if (!SerialiseMetricsHeader(font, out, &font->hhea->header)) {
- return OTS_FAILURE_MSG("Failed to serialise horizontal metrics");
- }
- return true;
-}
-
-void ots_hhea_reuse(Font *font, Font *other) {
- font->hhea = other->hhea;
- font->hhea_reused = true;
-}
-
-void ots_hhea_free(Font *font) {
- delete font->hhea;
+bool OpenTypeHHEA::Serialize(OTSStream *out) {
+ return OpenTypeMetricsHeader::Serialize(out);
}
} // namespace ots
-
-#undef TABLE_NAME