Index: third_party/ots/src/ots.h |
diff --git a/third_party/ots/src/ots.h b/third_party/ots/src/ots.h |
deleted file mode 100644 |
index ba3ba77a286cf3ad57bcee654689d01ebec4d74a..0000000000000000000000000000000000000000 |
--- a/third_party/ots/src/ots.h |
+++ /dev/null |
@@ -1,259 +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 OTS_H_ |
-#define OTS_H_ |
- |
-#include <stddef.h> |
-#include <cstdarg> |
-#include <cstddef> |
-#include <cstdio> |
-#include <cstdlib> |
-#include <cstring> |
-#include <limits> |
- |
-#include "opentype-sanitiser.h" |
- |
-// arraysize borrowed from base/basictypes.h |
-template <typename T, size_t N> |
-char (&ArraySizeHelper(T (&array)[N]))[N]; |
-#define arraysize(array) (sizeof(ArraySizeHelper(array))) |
- |
-namespace ots { |
- |
-#if !defined(OTS_DEBUG) |
-#define OTS_FAILURE() false |
-#else |
-#define OTS_FAILURE() \ |
- (\ |
- std::fprintf(stderr, "ERROR at %s:%d (%s)\n", \ |
- __FILE__, __LINE__, __FUNCTION__) \ |
- && false\ |
- ) |
-#endif |
- |
-// All OTS_FAILURE_* macros ultimately evaluate to 'false', just like the original |
-// message-less OTS_FAILURE(), so that the current parser will return 'false' as |
-// its result (indicating a failure). |
- |
-#if !defined(OTS_DEBUG) |
-#define OTS_MESSAGE_(level,otf_,...) \ |
- (otf_)->context->Message(level,__VA_ARGS__) |
-#else |
-#define OTS_MESSAGE_(level,otf_,...) \ |
- OTS_FAILURE(), \ |
- (otf_)->context->Message(level,__VA_ARGS__) |
-#endif |
- |
-// Generate a simple message |
-#define OTS_FAILURE_MSG_(otf_,...) \ |
- (OTS_MESSAGE_(0,otf_,__VA_ARGS__), false) |
- |
-#define OTS_WARNING_MSG_(otf_,...) \ |
- OTS_MESSAGE_(1,otf_,__VA_ARGS__) |
- |
-// Generate a message with an associated table tag |
-#define OTS_FAILURE_MSG_TAG_(otf_,msg_,tag_) \ |
- (OTS_MESSAGE_(0,otf_,"%4.4s: %s", tag_, msg_), false) |
- |
-// Convenience macros for use in files that only handle a single table tag, |
-// defined as TABLE_NAME at the top of the file; the 'file' variable is |
-// expected to be the current OpenTypeFile pointer. |
-#define OTS_FAILURE_MSG(...) OTS_FAILURE_MSG_(file, TABLE_NAME ": " __VA_ARGS__) |
- |
-#define OTS_WARNING(...) OTS_WARNING_MSG_(file, TABLE_NAME ": " __VA_ARGS__) |
- |
-// ----------------------------------------------------------------------------- |
-// Buffer helper class |
-// |
-// This class perform some trival buffer operations while checking for |
-// out-of-bounds errors. As a family they return false if anything is amiss, |
-// updating the current offset otherwise. |
-// ----------------------------------------------------------------------------- |
-class Buffer { |
- public: |
- Buffer(const uint8_t *buf, size_t len) |
- : buffer_(buf), |
- length_(len), |
- offset_(0) { } |
- |
- bool Skip(size_t n_bytes) { |
- return Read(NULL, n_bytes); |
- } |
- |
- bool Read(uint8_t *buf, size_t n_bytes) { |
- if (n_bytes > 1024 * 1024 * 1024) { |
- return OTS_FAILURE(); |
- } |
- if ((offset_ + n_bytes > length_) || |
- (offset_ > length_ - n_bytes)) { |
- return OTS_FAILURE(); |
- } |
- if (buf) { |
- std::memcpy(buf, buffer_ + offset_, n_bytes); |
- } |
- offset_ += n_bytes; |
- return true; |
- } |
- |
- inline bool ReadU8(uint8_t *value) { |
- if (offset_ + 1 > length_) { |
- return OTS_FAILURE(); |
- } |
- *value = buffer_[offset_]; |
- ++offset_; |
- return true; |
- } |
- |
- bool ReadU16(uint16_t *value) { |
- if (offset_ + 2 > length_) { |
- return OTS_FAILURE(); |
- } |
- std::memcpy(value, buffer_ + offset_, sizeof(uint16_t)); |
- *value = ntohs(*value); |
- offset_ += 2; |
- return true; |
- } |
- |
- bool ReadS16(int16_t *value) { |
- return ReadU16(reinterpret_cast<uint16_t*>(value)); |
- } |
- |
- bool ReadU24(uint32_t *value) { |
- if (offset_ + 3 > length_) { |
- return OTS_FAILURE(); |
- } |
- *value = static_cast<uint32_t>(buffer_[offset_]) << 16 | |
- static_cast<uint32_t>(buffer_[offset_ + 1]) << 8 | |
- static_cast<uint32_t>(buffer_[offset_ + 2]); |
- offset_ += 3; |
- return true; |
- } |
- |
- bool ReadU32(uint32_t *value) { |
- if (offset_ + 4 > length_) { |
- return OTS_FAILURE(); |
- } |
- std::memcpy(value, buffer_ + offset_, sizeof(uint32_t)); |
- *value = ntohl(*value); |
- offset_ += 4; |
- return true; |
- } |
- |
- bool ReadS32(int32_t *value) { |
- return ReadU32(reinterpret_cast<uint32_t*>(value)); |
- } |
- |
- bool ReadTag(uint32_t *value) { |
- if (offset_ + 4 > length_) { |
- return OTS_FAILURE(); |
- } |
- std::memcpy(value, buffer_ + offset_, sizeof(uint32_t)); |
- offset_ += 4; |
- return true; |
- } |
- |
- bool ReadR64(uint64_t *value) { |
- if (offset_ + 8 > length_) { |
- return OTS_FAILURE(); |
- } |
- std::memcpy(value, buffer_ + offset_, sizeof(uint64_t)); |
- offset_ += 8; |
- return true; |
- } |
- |
- const uint8_t *buffer() const { return buffer_; } |
- size_t offset() const { return offset_; } |
- size_t length() const { return length_; } |
- |
- void set_offset(size_t newoffset) { offset_ = newoffset; } |
- |
- private: |
- const uint8_t * const buffer_; |
- const size_t length_; |
- size_t offset_; |
-}; |
- |
-// Round a value up to the nearest multiple of 4. Don't round the value in the |
-// case that rounding up overflows. |
-template<typename T> T Round4(T value) { |
- if (std::numeric_limits<T>::max() - value < 3) { |
- return value; |
- } |
- return (value + 3) & ~3; |
-} |
- |
-template<typename T> T Round2(T value) { |
- if (value == std::numeric_limits<T>::max()) { |
- return value; |
- } |
- return (value + 1) & ~1; |
-} |
- |
-bool IsValidVersionTag(uint32_t tag); |
- |
-#define FOR_EACH_TABLE_TYPE \ |
- F(cff, CFF) \ |
- F(cmap, CMAP) \ |
- F(cvt, CVT) \ |
- F(fpgm, FPGM) \ |
- F(gasp, GASP) \ |
- F(gdef, GDEF) \ |
- F(glyf, GLYF) \ |
- F(gpos, GPOS) \ |
- F(gsub, GSUB) \ |
- F(hdmx, HDMX) \ |
- F(head, HEAD) \ |
- F(hhea, HHEA) \ |
- F(hmtx, HMTX) \ |
- F(kern, KERN) \ |
- F(loca, LOCA) \ |
- F(ltsh, LTSH) \ |
- F(math, MATH) \ |
- F(maxp, MAXP) \ |
- F(name, NAME) \ |
- F(os2, OS2) \ |
- F(post, POST) \ |
- F(prep, PREP) \ |
- F(vdmx, VDMX) \ |
- F(vorg, VORG) \ |
- F(vhea, VHEA) \ |
- F(vmtx, VMTX) |
- |
-#define F(name, capname) struct OpenType##capname; |
-FOR_EACH_TABLE_TYPE |
-#undef F |
- |
-struct OpenTypeFile { |
- OpenTypeFile() { |
-#define F(name, capname) name = NULL; |
- FOR_EACH_TABLE_TYPE |
-#undef F |
- } |
- |
- uint32_t version; |
- uint16_t num_tables; |
- uint16_t search_range; |
- uint16_t entry_selector; |
- uint16_t range_shift; |
- |
- OTSContext *context; |
- |
-#define F(name, capname) OpenType##capname *name; |
-FOR_EACH_TABLE_TYPE |
-#undef F |
-}; |
- |
-#define F(name, capname) \ |
-bool ots_##name##_parse(OpenTypeFile *f, const uint8_t *d, size_t l); \ |
-bool ots_##name##_should_serialise(OpenTypeFile *f); \ |
-bool ots_##name##_serialise(OTSStream *s, OpenTypeFile *f); \ |
-void ots_##name##_free(OpenTypeFile *f); |
-// TODO(yusukes): change these function names to follow Chromium coding rule. |
-FOR_EACH_TABLE_TYPE |
-#undef F |
- |
-} // namespace ots |
- |
-#endif // OTS_H_ |