Simplify Tag struct
This commit is contained in:
parent
00e23fcc6f
commit
ffd321afd9
|
@ -84,7 +84,8 @@ typedef struct OffsetTable
|
||||||
}
|
}
|
||||||
inline bool find_table_index (hb_tag_t tag, unsigned int *table_index) const
|
inline bool find_table_index (hb_tag_t tag, unsigned int *table_index) const
|
||||||
{
|
{
|
||||||
const Tag t = tag;
|
Tag t;
|
||||||
|
t.set (tag);
|
||||||
// TODO bsearch
|
// TODO bsearch
|
||||||
unsigned int count = numTables;
|
unsigned int count = numTables;
|
||||||
for (unsigned int i = 0; i < count; i++)
|
for (unsigned int i = 0; i < count; i++)
|
||||||
|
|
|
@ -360,7 +360,7 @@ struct Sanitizer
|
||||||
struct NAME \
|
struct NAME \
|
||||||
{ \
|
{ \
|
||||||
static inline unsigned int get_size () { return BYTES; } \
|
static inline unsigned int get_size () { return BYTES; } \
|
||||||
inline NAME& set (TYPE i) { BIG_ENDIAN##_put_unaligned(v, i); return *this; } \
|
inline void set (TYPE i) { BIG_ENDIAN##_put_unaligned(v, i); } \
|
||||||
inline operator TYPE(void) const { return BIG_ENDIAN##_get_unaligned (v); } \
|
inline operator TYPE(void) const { return BIG_ENDIAN##_get_unaligned (v); } \
|
||||||
inline bool operator == (const NAME &o) const { return BIG_ENDIAN##_cmp_unaligned (v, o.v); } \
|
inline bool operator == (const NAME &o) const { return BIG_ENDIAN##_cmp_unaligned (v, o.v); } \
|
||||||
inline bool sanitize (SANITIZE_ARG_DEF) { \
|
inline bool sanitize (SANITIZE_ARG_DEF) { \
|
||||||
|
@ -384,10 +384,6 @@ DEFINE_INT_TYPE (LONG, , 32); /* 32-bit signed integer. */
|
||||||
* system, feature, or baseline */
|
* system, feature, or baseline */
|
||||||
struct Tag : ULONG
|
struct Tag : ULONG
|
||||||
{
|
{
|
||||||
inline Tag (const Tag &o) { *(ULONG*)this = (ULONG&) o; }
|
|
||||||
inline Tag (uint32_t i) { (*(ULONG*)this).set (i); }
|
|
||||||
inline Tag (const char *c) { *(ULONG*)this = *(ULONG*)c; }
|
|
||||||
inline bool operator == (const char *c) const { return *(ULONG*)this == *(ULONG*)c; }
|
|
||||||
/* What the char* converters return is NOT nul-terminated. Print using "%.4s" */
|
/* What the char* converters return is NOT nul-terminated. Print using "%.4s" */
|
||||||
inline operator const char* (void) const { return CONST_CHARP(this); }
|
inline operator const char* (void) const { return CONST_CHARP(this); }
|
||||||
inline operator char* (void) { return CHARP(this); }
|
inline operator char* (void) { return CHARP(this); }
|
||||||
|
|
|
@ -85,7 +85,8 @@ struct RecordArrayOf : ArrayOf<Record<Type> > {
|
||||||
}
|
}
|
||||||
inline bool find_index (hb_tag_t tag, unsigned int *index) const
|
inline bool find_index (hb_tag_t tag, unsigned int *index) const
|
||||||
{
|
{
|
||||||
const Tag t = tag;
|
Tag t;
|
||||||
|
t.set (tag);
|
||||||
// TODO bsearch
|
// TODO bsearch
|
||||||
const Record<Type> *a = this->const_array();
|
const Record<Type> *a = this->const_array();
|
||||||
unsigned int count = this->len;
|
unsigned int count = this->len;
|
||||||
|
|
Loading…
Reference in New Issue