Use union for ClassDef
This commit is contained in:
parent
c46196d09c
commit
bf0f9dd613
|
@ -594,22 +594,24 @@ struct ClassDef {
|
||||||
|
|
||||||
inline unsigned int get_size (void) const {
|
inline unsigned int get_size (void) const {
|
||||||
switch (classFormat) {
|
switch (classFormat) {
|
||||||
case 1: return ((const ClassDefFormat1&)*this).get_size ();
|
case 1: return format1.get_size ();
|
||||||
case 2: return ((const ClassDefFormat2&)*this).get_size ();
|
case 2: return format2.get_size ();
|
||||||
default:return sizeof (ClassDef);
|
default:return sizeof (classFormat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns 0 if not found. */
|
/* Returns 0 if not found. */
|
||||||
inline int get_class (uint16_t glyph_id) const {
|
inline int get_class (uint16_t glyph_id) const {
|
||||||
switch (classFormat) {
|
switch (classFormat) {
|
||||||
case 1: return ((const ClassDefFormat1&)*this).get_class(glyph_id);
|
case 1: format1.get_class(glyph_id);
|
||||||
case 2: return ((const ClassDefFormat2&)*this).get_class(glyph_id);
|
case 2: format2.get_class(glyph_id);
|
||||||
default:return 0;
|
default:return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
USHORT classFormat; /* Format identifier */
|
USHORT classFormat; /* Format identifier */
|
||||||
|
ClassDefFormat1 format1;
|
||||||
|
ClassDefFormat2 format2;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue