[HB] More cleanup

This commit is contained in:
Behdad Esfahbod 2009-05-25 03:10:06 -04:00
parent 20cc86b359
commit cc6c644ff2
2 changed files with 7 additions and 6 deletions

View File

@ -82,7 +82,7 @@ struct LangSys
inline const unsigned int get_feature_index (unsigned int i) const { return featureIndex[i]; } inline const unsigned int get_feature_index (unsigned int i) const { return featureIndex[i]; }
inline unsigned int get_feature_count (void) const { return featureIndex.len; } inline unsigned int get_feature_count (void) const { return featureIndex.len; }
inline const bool has_required_feature (void) const { return reqFeatureIndex != 0xffff; } inline bool has_required_feature (void) const { return reqFeatureIndex != 0xffff; }
inline int get_required_feature_index (void) const inline int get_required_feature_index (void) const
{ {
if (reqFeatureIndex == 0xffff) if (reqFeatureIndex == 0xffff)
@ -114,7 +114,7 @@ struct Script
// LONGTERMTODO bsearch // LONGTERMTODO bsearch
DEFINE_TAG_FIND_INTERFACE (LangSys, lang_sys); /* find_lang_sys_index (), get_lang_sys_by_tag (tag) */ DEFINE_TAG_FIND_INTERFACE (LangSys, lang_sys); /* find_lang_sys_index (), get_lang_sys_by_tag (tag) */
inline const bool has_default_lang_sys (void) const { return defaultLangSys != 0; } inline bool has_default_lang_sys (void) const { return defaultLangSys != 0; }
inline const LangSys& get_default_lang_sys (void) const { return this+defaultLangSys; } inline const LangSys& get_default_lang_sys (void) const { return this+defaultLangSys; }
private: private:

View File

@ -108,17 +108,17 @@
inline const Tag& get_##name##_tag (unsigned int i) const { return (this+name##List).get_tag (i); } inline const Tag& get_##name##_tag (unsigned int i) const { return (this+name##List).get_tag (i); }
#define DEFINE_TAG_FIND_INTERFACE(Type, name) \ #define DEFINE_TAG_FIND_INTERFACE(Type, name) \
inline bool find_##name##_index (hb_tag_t tag, unsigned int *name##_index) const { \ inline bool find_##name##_index (hb_tag_t tag, unsigned int *index) const { \
const Tag t = tag; \ const Tag t = tag; \
for (unsigned int i = 0; i < get_##name##_count (); i++) \ for (unsigned int i = 0; i < get_##name##_count (); i++) \
{ \ { \
if (t == get_##name##_tag (i)) \ if (t == get_##name##_tag (i)) \
{ \ { \
if (name##_index) *name##_index = i; \ if (index) *index = i; \
return true; \ return true; \
} \ } \
} \ } \
if (name##_index) *name##_index = NO_INDEX; \ if (index) *index = NO_INDEX; \
return false; \ return false; \
} \ } \
inline const Type& get_##name##_by_tag (hb_tag_t tag) const \ inline const Type& get_##name##_by_tag (hb_tag_t tag) const \
@ -150,10 +150,11 @@ struct Null
/* Specializaiton for arbitrary-content arbitrary-sized Null objects. */ /* Specializaiton for arbitrary-content arbitrary-sized Null objects. */
#define DEFINE_NULL_DATA(Type, size, data) \ #define DEFINE_NULL_DATA(Type, size, data) \
static const char _Null##Type[size] = data; \
template <> \ template <> \
struct Null <Type> \ struct Null <Type> \
{ \ { \
static inline const Type &get () { static const char bytes[size] = data; return (const Type&) *bytes; /* XXX */ } \ static inline const Type &get () { return (const Type&) *_Null##Type; } \
} }
/* Accessor macro. */ /* Accessor macro. */