Index: third_party/ots/include/opentype-sanitiser.h |
diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/include/opentype-sanitiser.h |
deleted file mode 100644 |
index c454f1e23eba2e2f9b447d4f782af61116fb612e..0000000000000000000000000000000000000000 |
--- a/third_party/ots/include/opentype-sanitiser.h |
+++ /dev/null |
@@ -1,231 +0,0 @@ |
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef OPENTYPE_SANITISER_H_ |
-#define OPENTYPE_SANITISER_H_ |
- |
-#if defined(_WIN32) |
-#include <stdlib.h> |
-typedef signed char int8_t; |
-typedef unsigned char uint8_t; |
-typedef short int16_t; |
-typedef unsigned short uint16_t; |
-typedef int int32_t; |
-typedef unsigned int uint32_t; |
-typedef __int64 int64_t; |
-typedef unsigned __int64 uint64_t; |
-#define ntohl(x) _byteswap_ulong (x) |
-#define ntohs(x) _byteswap_ushort (x) |
-#define htonl(x) _byteswap_ulong (x) |
-#define htons(x) _byteswap_ushort (x) |
-#else |
-#include <arpa/inet.h> |
-#include <stdint.h> |
-#endif |
- |
-#include <algorithm> |
-#include <cassert> |
-#include <cstddef> |
-#include <cstring> |
- |
-namespace ots { |
- |
-// ----------------------------------------------------------------------------- |
-// This is an interface for an abstract stream class which is used for writing |
-// the serialised results out. |
-// ----------------------------------------------------------------------------- |
-class OTSStream { |
- public: |
- OTSStream() { |
- ResetChecksum(); |
- } |
- |
- virtual ~OTSStream() {} |
- |
- // This should be implemented to perform the actual write. |
- virtual bool WriteRaw(const void *data, size_t length) = 0; |
- |
- bool Write(const void *data, size_t length) { |
- if (!length) return false; |
- |
- const size_t orig_length = length; |
- size_t offset = 0; |
- if (chksum_buffer_offset_) { |
- const size_t l = |
- std::min(length, static_cast<size_t>(4) - chksum_buffer_offset_); |
- std::memcpy(chksum_buffer_ + chksum_buffer_offset_, data, l); |
- chksum_buffer_offset_ += l; |
- offset += l; |
- length -= l; |
- } |
- |
- if (chksum_buffer_offset_ == 4) { |
- uint32_t tmp; |
- std::memcpy(&tmp, chksum_buffer_, 4); |
- chksum_ += ntohl(tmp); |
- chksum_buffer_offset_ = 0; |
- } |
- |
- while (length >= 4) { |
- uint32_t tmp; |
- std::memcpy(&tmp, reinterpret_cast<const uint8_t *>(data) + offset, |
- sizeof(uint32_t)); |
- chksum_ += ntohl(tmp); |
- length -= 4; |
- offset += 4; |
- } |
- |
- if (length) { |
- if (chksum_buffer_offset_ != 0) return false; // not reached |
- if (length > 4) return false; // not reached |
- std::memcpy(chksum_buffer_, |
- reinterpret_cast<const uint8_t*>(data) + offset, length); |
- chksum_buffer_offset_ = length; |
- } |
- |
- return WriteRaw(data, orig_length); |
- } |
- |
- virtual bool Seek(off_t position) = 0; |
- virtual off_t Tell() const = 0; |
- |
- virtual bool Pad(size_t bytes) { |
- static const uint32_t kZero = 0; |
- while (bytes >= 4) { |
- if (!WriteTag(kZero)) return false; |
- bytes -= 4; |
- } |
- while (bytes) { |
- static const uint8_t kZerob = 0; |
- if (!Write(&kZerob, 1)) return false; |
- bytes--; |
- } |
- return true; |
- } |
- |
- bool WriteU8(uint8_t v) { |
- return Write(&v, sizeof(v)); |
- } |
- |
- bool WriteU16(uint16_t v) { |
- v = htons(v); |
- return Write(&v, sizeof(v)); |
- } |
- |
- bool WriteS16(int16_t v) { |
- v = htons(v); |
- return Write(&v, sizeof(v)); |
- } |
- |
- bool WriteU24(uint32_t v) { |
- v = htonl(v); |
- return Write(reinterpret_cast<uint8_t*>(&v)+1, 3); |
- } |
- |
- bool WriteU32(uint32_t v) { |
- v = htonl(v); |
- return Write(&v, sizeof(v)); |
- } |
- |
- bool WriteS32(int32_t v) { |
- v = htonl(v); |
- return Write(&v, sizeof(v)); |
- } |
- |
- bool WriteR64(uint64_t v) { |
- return Write(&v, sizeof(v)); |
- } |
- |
- bool WriteTag(uint32_t v) { |
- return Write(&v, sizeof(v)); |
- } |
- |
- void ResetChecksum() { |
- chksum_ = 0; |
- chksum_buffer_offset_ = 0; |
- } |
- |
- uint32_t chksum() const { |
- assert(chksum_buffer_offset_ == 0); |
- return chksum_; |
- } |
- |
- struct ChecksumState { |
- uint32_t chksum; |
- uint8_t chksum_buffer[4]; |
- unsigned chksum_buffer_offset; |
- }; |
- |
- ChecksumState SaveChecksumState() const { |
- ChecksumState s; |
- s.chksum = chksum_; |
- s.chksum_buffer_offset = chksum_buffer_offset_; |
- std::memcpy(s.chksum_buffer, chksum_buffer_, 4); |
- |
- return s; |
- } |
- |
- void RestoreChecksum(const ChecksumState &s) { |
- assert(chksum_buffer_offset_ == 0); |
- chksum_ += s.chksum; |
- chksum_buffer_offset_ = s.chksum_buffer_offset; |
- std::memcpy(chksum_buffer_, s.chksum_buffer, 4); |
- } |
- |
- protected: |
- uint32_t chksum_; |
- uint8_t chksum_buffer_[4]; |
- unsigned chksum_buffer_offset_; |
-}; |
- |
-#ifdef __GCC__ |
-#define MSGFUNC_FMT_ATTR __attribute__((format(printf, 2, 3))) |
-#else |
-#define MSGFUNC_FMT_ATTR |
-#endif |
- |
-enum TableAction { |
- TABLE_ACTION_DEFAULT, // Use OTS's default action for that table |
- TABLE_ACTION_SANITIZE, // Sanitize the table, potentially droping it |
- TABLE_ACTION_PASSTHRU, // Serialize the table unchanged |
- TABLE_ACTION_DROP // Drop the table |
-}; |
- |
-class OTSContext { |
- public: |
- OTSContext() {} |
- virtual ~OTSContext() {} |
- |
- // Process a given OpenType file and write out a sanitised version |
- // output: a pointer to an object implementing the OTSStream interface. The |
- // sanitisied output will be written to this. In the even of a failure, |
- // partial output may have been written. |
- // input: the OpenType file |
- // length: the size, in bytes, of |input| |
- // context: optional context that holds various OTS settings like user callbacks |
- bool Process(OTSStream *output, const uint8_t *input, size_t length); |
- |
- // This function will be called when OTS is reporting an error. |
- // level: the severity of the generated message: |
- // 0: error messages in case OTS fails to sanitize the font. |
- // 1: warning messages about issue OTS fixed in the sanitized font. |
- virtual void Message(int level, const char *format, ...) MSGFUNC_FMT_ATTR {} |
- |
- // This function will be called when OTS needs to decide what to do for a |
- // font table. |
- // tag: table tag as an integer in big-endian byte order, independent of |
- // platform endianness |
- virtual TableAction GetTableAction(uint32_t tag) { return ots::TABLE_ACTION_DEFAULT; } |
-}; |
- |
-// For backward compatibility - remove once Chrome switches over to the new API. |
-bool Process(OTSStream *output, const uint8_t *input, size_t length); |
- |
-// For backward compatibility - remove once https://codereview.chromium.org/774253008/ |
-// is submitted. |
-void EnableWOFF2(); |
- |
-} // namespace ots |
- |
-#endif // OPENTYPE_SANITISER_H_ |