[pango/harfbuzz-ng] [HB] Use OffsetTo<> for Coverage
- From: Behdad Esfahbod <behdad src gnome org>
- To: svn-commits-list gnome org
- Subject: [pango/harfbuzz-ng] [HB] Use OffsetTo<> for Coverage
- Date: Sun, 17 May 2009 19:49:21 -0400 (EDT)
commit 2cb82da2cf865cdc05e23745ea07bff773eedc0b
Author: Behdad Esfahbod <behdad behdad org>
Date: Sun May 17 00:22:37 2009 -0400
[HB] Use OffsetTo<> for Coverage
---
pango/opentype/hb-ot-layout-gdef-private.h | 1 +
pango/opentype/hb-ot-layout-gsub-private.h | 55 +++++++++++-----------------
pango/opentype/hb-ot-layout-open-private.h | 10 +-----
3 files changed, 23 insertions(+), 43 deletions(-)
diff --git a/pango/opentype/hb-ot-layout-gdef-private.h b/pango/opentype/hb-ot-layout-gdef-private.h
index fdff435..f5de2b8 100644
--- a/pango/opentype/hb-ot-layout-gdef-private.h
+++ b/pango/opentype/hb-ot-layout-gdef-private.h
@@ -240,6 +240,7 @@ struct GDEF {
inline bool has_attach_list () const { return attachList != 0; }
inline bool has_lig_caret_list () const { return ligCaretList != 0; }
+ private:
Fixed version; /* Version of the GDEF table--initially
* 0x00010000 */
OffsetTo<ClassDef>
diff --git a/pango/opentype/hb-ot-layout-gsub-private.h b/pango/opentype/hb-ot-layout-gsub-private.h
index 7e497f1..d84b3fc 100644
--- a/pango/opentype/hb-ot-layout-gsub-private.h
+++ b/pango/opentype/hb-ot-layout-gsub-private.h
@@ -34,12 +34,6 @@
#include "harfbuzz-buffer-private.h" /* XXX */
-#define DEFINE_GET_GLYPH_COVERAGE(name) \
- inline unsigned int get_##name (hb_codepoint_t glyph) const { \
- const Coverage &c = get_coverage (); \
- return c.get_coverage (glyph); \
- }
-
#define SUBTABLE_SUBSTITUTE_ARGS_DEF \
hb_ot_layout_t *layout, \
hb_buffer_t *buffer, \
@@ -58,12 +52,10 @@ struct SingleSubstFormat1 {
friend struct SingleSubst;
private:
- DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
- DEFINE_GET_GLYPH_COVERAGE (glyph_coverage);
inline bool single_substitute (hb_codepoint_t &glyph_id) const {
- unsigned int index = get_glyph_coverage (glyph_id);
+ unsigned int index = (this+coverage) (glyph_id);
if (NOT_COVERED == index)
return false;
@@ -74,7 +66,8 @@ struct SingleSubstFormat1 {
private:
USHORT substFormat; /* Format identifier--format = 1 */
- Offset coverage; /* Offset to Coverage table--from
+ OffsetTo<Coverage>
+ coverage; /* Offset to Coverage table--from
* beginning of Substitution table */
SHORT deltaGlyphID; /* Add to original GlyphID to get
* substitute GlyphID */
@@ -86,12 +79,10 @@ struct SingleSubstFormat2 {
friend struct SingleSubst;
private:
- DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
- DEFINE_GET_GLYPH_COVERAGE (glyph_coverage);
inline bool single_substitute (hb_codepoint_t &glyph_id) const {
- unsigned int index = get_glyph_coverage (glyph_id);
+ unsigned int index = (this+coverage) (glyph_id);
if (index >= glyphCount)
return false;
@@ -102,7 +93,8 @@ struct SingleSubstFormat2 {
private:
USHORT substFormat; /* Format identifier--format = 2 */
- Offset coverage; /* Offset to Coverage table--from
+ OffsetTo<Coverage>
+ coverage; /* Offset to Coverage table--from
* beginning of Substitution table */
USHORT glyphCount; /* Number of GlyphIDs in the Substitute
* array */
@@ -209,8 +201,6 @@ struct MultipleSubstFormat1 {
private:
/* Sequence tables, in Coverage Index order */
DEFINE_OFFSET_ARRAY_TYPE (Sequence, sequence, sequenceCount);
- DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
- DEFINE_GET_GLYPH_COVERAGE (glyph_coverage);
inline bool substitute (SUBTABLE_SUBSTITUTE_ARGS_DEF) const {
@@ -220,7 +210,7 @@ struct MultipleSubstFormat1 {
hb_codepoint_t glyph_id = IN_CURGLYPH ();
- unsigned int index = get_glyph_coverage (glyph_id);
+ unsigned int index = (this+coverage) (glyph_id);
const Sequence &seq = (*this)[index];
return seq.substitute_sequence (SUBTABLE_SUBSTITUTE_ARGS, property);
@@ -228,7 +218,8 @@ struct MultipleSubstFormat1 {
private:
USHORT substFormat; /* Format identifier--format = 1 */
- Offset coverage; /* Offset to Coverage table--from
+ OffsetTo<Coverage>
+ coverage; /* Offset to Coverage table--from
* beginning of Substitution table */
USHORT sequenceCount; /* Number of Sequence table offsets in
* the Sequence array */
@@ -281,8 +272,6 @@ struct AlternateSubstFormat1 {
private:
/* AlternateSet tables, in Coverage Index order */
DEFINE_OFFSET_ARRAY_TYPE (AlternateSet, alternateSet, alternateSetCount);
- DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
- DEFINE_GET_GLYPH_COVERAGE (glyph_coverage);
inline bool substitute (SUBTABLE_SUBSTITUTE_ARGS_DEF) const {
@@ -292,7 +281,7 @@ struct AlternateSubstFormat1 {
hb_codepoint_t glyph_id = IN_CURGLYPH ();
- unsigned int index = get_glyph_coverage (glyph_id);
+ unsigned int index = (this+coverage) (glyph_id);
const AlternateSet &alt_set = (*this)[index];
@@ -326,7 +315,8 @@ struct AlternateSubstFormat1 {
private:
USHORT substFormat; /* Format identifier--format = 1 */
- Offset coverage; /* Offset to Coverage table--from
+ OffsetTo<Coverage>
+ coverage; /* Offset to Coverage table--from
* beginning of Substitution table */
USHORT alternateSetCount; /* Number of AlternateSet tables */
Offset alternateSet[]; /* Array of offsets to AlternateSet
@@ -475,8 +465,6 @@ struct LigatureSubstFormat1 {
private:
/* LigatureSet tables, in Coverage Index order */
DEFINE_OFFSET_ARRAY_TYPE (LigatureSet, ligatureSet, ligSetCount);
- DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
- DEFINE_GET_GLYPH_COVERAGE (glyph_coverage);
inline bool substitute (SUBTABLE_SUBSTITUTE_ARGS_DEF) const {
@@ -486,7 +474,7 @@ struct LigatureSubstFormat1 {
hb_codepoint_t glyph_id = IN_CURGLYPH ();
- unsigned int index = get_glyph_coverage (glyph_id);
+ unsigned int index = (this+coverage) (glyph_id);
bool first_is_mark = (property == HB_OT_LAYOUT_GLYPH_CLASS_MARK ||
property & LookupFlag::MarkAttachmentType);
@@ -497,7 +485,8 @@ struct LigatureSubstFormat1 {
private:
USHORT substFormat; /* Format identifier--format = 1 */
- Offset coverage; /* Offset to Coverage table--from
+ OffsetTo<Coverage>
+ coverage; /* Offset to Coverage table--from
* beginning of Substitution table */
USHORT ligSetCount; /* Number of LigatureSet tables */
Offset ligatureSet[]; /* Array of offsets to LigatureSet
@@ -648,8 +637,6 @@ struct ContextSubstFormat1 {
private:
/* SubRuleSet tables, in Coverage Index order */
DEFINE_OFFSET_ARRAY_TYPE (SubRuleSet, subRuleSet, subRuleSetCount);
- DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
- DEFINE_GET_GLYPH_COVERAGE (glyph_coverage);
inline bool substitute (SUBTABLE_SUBSTITUTE_ARGS_DEF) const {
@@ -659,7 +646,7 @@ struct ContextSubstFormat1 {
hb_codepoint_t glyph_id = IN_CURGLYPH ();
- unsigned int index = get_glyph_coverage (glyph_id);
+ unsigned int index = (this+coverage) (glyph_id);
const SubRuleSet &rule_set = (*this)[index];
return rule_set.substitute (SUBTABLE_SUBSTITUTE_ARGS);
@@ -667,7 +654,8 @@ struct ContextSubstFormat1 {
private:
USHORT substFormat; /* Format identifier--format = 1 */
- Offset coverage; /* Offset to Coverage table--from
+ OffsetTo<Coverage>
+ coverage; /* Offset to Coverage table--from
* beginning of Substitution table */
USHORT subRuleSetCount; /* Number of SubRuleSet tables--must
* equal GlyphCount in Coverage table */
@@ -792,8 +780,6 @@ struct ContextSubstFormat2 {
private:
/* SubClassSet tables, in Coverage Index order */
DEFINE_OFFSET_ARRAY_TYPE (SubClassSet, subClassSet, subClassSetCnt);
- DEFINE_GET_ACCESSOR (Coverage, coverage, coverage);
- DEFINE_GET_GLYPH_COVERAGE (glyph_coverage);
inline bool substitute (SUBTABLE_SUBSTITUTE_ARGS_DEF) const {
@@ -803,7 +789,7 @@ struct ContextSubstFormat2 {
hb_codepoint_t glyph_id = IN_CURGLYPH ();
- unsigned int index = get_glyph_coverage (glyph_id);
+ unsigned int index = (this+coverage) (glyph_id);
const SubClassSet &class_set = (*this)[index];
return class_set.substitute_class (SUBTABLE_SUBSTITUTE_ARGS, this+classDef);
@@ -811,7 +797,8 @@ struct ContextSubstFormat2 {
private:
USHORT substFormat; /* Format identifier--format = 2 */
- Offset coverage; /* Offset to Coverage table--from
+ OffsetTo<Coverage>
+ coverage; /* Offset to Coverage table--from
* beginning of Substitution table */
OffsetTo<ClassDef>
classDef; /* Offset to glyph ClassDef table--from
diff --git a/pango/opentype/hb-ot-layout-open-private.h b/pango/opentype/hb-ot-layout-open-private.h
index 9ef810b..f68e59f 100644
--- a/pango/opentype/hb-ot-layout-open-private.h
+++ b/pango/opentype/hb-ot-layout-open-private.h
@@ -69,7 +69,7 @@
inline unsigned int get_len(void) const { return num; } \
/* An array type is one that contains a variable number of objects
- * as its last item. An array object is extended with len() and size()
+ * as its last item. An array object is extended with get_len()
* methods, as well as overloaded [] operator. */
#define DEFINE_ARRAY_TYPE(Type, array, num) \
DEFINE_INDEX_OPERATOR(Type, array, num) \
@@ -237,14 +237,6 @@ struct Null <Type> { \
}
-#define DEFINE_GET_ACCESSOR(Type, name, Name) \
- inline const Type& get_##name (void) const { \
- if (HB_UNLIKELY (!Name)) return Null(Type); \
- return *(const Type*)((const char*)this + Name); \
- }
-
-
-
/*
*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]