|
|
@ -49,7 +49,7 @@ struct Coverage |
|
|
|
HBUINT16 format; /* Format identifier */ |
|
|
|
HBUINT16 format; /* Format identifier */ |
|
|
|
CoverageFormat1_3<SmallTypes> format1; |
|
|
|
CoverageFormat1_3<SmallTypes> format1; |
|
|
|
CoverageFormat2_4<SmallTypes> format2; |
|
|
|
CoverageFormat2_4<SmallTypes> format2; |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
CoverageFormat1_3<MediumTypes>format3; |
|
|
|
CoverageFormat1_3<MediumTypes>format3; |
|
|
|
CoverageFormat2_4<MediumTypes>format4; |
|
|
|
CoverageFormat2_4<MediumTypes>format4; |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -65,7 +65,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return_trace (u.format1.sanitize (c)); |
|
|
|
case 1: return_trace (u.format1.sanitize (c)); |
|
|
|
case 2: return_trace (u.format2.sanitize (c)); |
|
|
|
case 2: return_trace (u.format2.sanitize (c)); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return_trace (u.format3.sanitize (c)); |
|
|
|
case 3: return_trace (u.format3.sanitize (c)); |
|
|
|
case 4: return_trace (u.format4.sanitize (c)); |
|
|
|
case 4: return_trace (u.format4.sanitize (c)); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -87,7 +87,7 @@ struct Coverage |
|
|
|
switch (u.format) { |
|
|
|
switch (u.format) { |
|
|
|
case 1: return u.format1.get_coverage (glyph_id); |
|
|
|
case 1: return u.format1.get_coverage (glyph_id); |
|
|
|
case 2: return u.format2.get_coverage (glyph_id); |
|
|
|
case 2: return u.format2.get_coverage (glyph_id); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.get_coverage (glyph_id); |
|
|
|
case 3: return u.format3.get_coverage (glyph_id); |
|
|
|
case 4: return u.format4.get_coverage (glyph_id); |
|
|
|
case 4: return u.format4.get_coverage (glyph_id); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -100,7 +100,7 @@ struct Coverage |
|
|
|
switch (u.format) { |
|
|
|
switch (u.format) { |
|
|
|
case 1: return u.format1.get_population (); |
|
|
|
case 1: return u.format1.get_population (); |
|
|
|
case 2: return u.format2.get_population (); |
|
|
|
case 2: return u.format2.get_population (); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.get_population (); |
|
|
|
case 3: return u.format3.get_population (); |
|
|
|
case 4: return u.format4.get_population (); |
|
|
|
case 4: return u.format4.get_population (); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -127,7 +127,7 @@ struct Coverage |
|
|
|
} |
|
|
|
} |
|
|
|
u.format = count <= num_ranges * 3 ? 1 : 2; |
|
|
|
u.format = count <= num_ranges * 3 ? 1 : 2; |
|
|
|
|
|
|
|
|
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
if (count && last > 0xFFFFu) |
|
|
|
if (count && last > 0xFFFFu) |
|
|
|
u.format += 2; |
|
|
|
u.format += 2; |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -136,7 +136,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return_trace (u.format1.serialize (c, glyphs)); |
|
|
|
case 1: return_trace (u.format1.serialize (c, glyphs)); |
|
|
|
case 2: return_trace (u.format2.serialize (c, glyphs)); |
|
|
|
case 2: return_trace (u.format2.serialize (c, glyphs)); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return_trace (u.format3.serialize (c, glyphs)); |
|
|
|
case 3: return_trace (u.format3.serialize (c, glyphs)); |
|
|
|
case 4: return_trace (u.format4.serialize (c, glyphs)); |
|
|
|
case 4: return_trace (u.format4.serialize (c, glyphs)); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -166,7 +166,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return u.format1.intersects (glyphs); |
|
|
|
case 1: return u.format1.intersects (glyphs); |
|
|
|
case 2: return u.format2.intersects (glyphs); |
|
|
|
case 2: return u.format2.intersects (glyphs); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.intersects (glyphs); |
|
|
|
case 3: return u.format3.intersects (glyphs); |
|
|
|
case 4: return u.format4.intersects (glyphs); |
|
|
|
case 4: return u.format4.intersects (glyphs); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -179,7 +179,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return u.format1.intersects_coverage (glyphs, index); |
|
|
|
case 1: return u.format1.intersects_coverage (glyphs, index); |
|
|
|
case 2: return u.format2.intersects_coverage (glyphs, index); |
|
|
|
case 2: return u.format2.intersects_coverage (glyphs, index); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.intersects_coverage (glyphs, index); |
|
|
|
case 3: return u.format3.intersects_coverage (glyphs, index); |
|
|
|
case 4: return u.format4.intersects_coverage (glyphs, index); |
|
|
|
case 4: return u.format4.intersects_coverage (glyphs, index); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -196,7 +196,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return u.format1.collect_coverage (glyphs); |
|
|
|
case 1: return u.format1.collect_coverage (glyphs); |
|
|
|
case 2: return u.format2.collect_coverage (glyphs); |
|
|
|
case 2: return u.format2.collect_coverage (glyphs); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.collect_coverage (glyphs); |
|
|
|
case 3: return u.format3.collect_coverage (glyphs); |
|
|
|
case 4: return u.format4.collect_coverage (glyphs); |
|
|
|
case 4: return u.format4.collect_coverage (glyphs); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -212,7 +212,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return u.format1.intersect_set (glyphs, intersect_glyphs); |
|
|
|
case 1: return u.format1.intersect_set (glyphs, intersect_glyphs); |
|
|
|
case 2: return u.format2.intersect_set (glyphs, intersect_glyphs); |
|
|
|
case 2: return u.format2.intersect_set (glyphs, intersect_glyphs); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.intersect_set (glyphs, intersect_glyphs); |
|
|
|
case 3: return u.format3.intersect_set (glyphs, intersect_glyphs); |
|
|
|
case 4: return u.format4.intersect_set (glyphs, intersect_glyphs); |
|
|
|
case 4: return u.format4.intersect_set (glyphs, intersect_glyphs); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -231,7 +231,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: u.format1.init (c_.u.format1); return; |
|
|
|
case 1: u.format1.init (c_.u.format1); return; |
|
|
|
case 2: u.format2.init (c_.u.format2); return; |
|
|
|
case 2: u.format2.init (c_.u.format2); return; |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: u.format3.init (c_.u.format3); return; |
|
|
|
case 3: u.format3.init (c_.u.format3); return; |
|
|
|
case 4: u.format4.init (c_.u.format4); return; |
|
|
|
case 4: u.format4.init (c_.u.format4); return; |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -244,7 +244,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return u.format1.__more__ (); |
|
|
|
case 1: return u.format1.__more__ (); |
|
|
|
case 2: return u.format2.__more__ (); |
|
|
|
case 2: return u.format2.__more__ (); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.__more__ (); |
|
|
|
case 3: return u.format3.__more__ (); |
|
|
|
case 4: return u.format4.__more__ (); |
|
|
|
case 4: return u.format4.__more__ (); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -257,7 +257,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: u.format1.__next__ (); break; |
|
|
|
case 1: u.format1.__next__ (); break; |
|
|
|
case 2: u.format2.__next__ (); break; |
|
|
|
case 2: u.format2.__next__ (); break; |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: u.format3.__next__ (); break; |
|
|
|
case 3: u.format3.__next__ (); break; |
|
|
|
case 4: u.format4.__next__ (); break; |
|
|
|
case 4: u.format4.__next__ (); break; |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -273,7 +273,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return u.format1.get_glyph (); |
|
|
|
case 1: return u.format1.get_glyph (); |
|
|
|
case 2: return u.format2.get_glyph (); |
|
|
|
case 2: return u.format2.get_glyph (); |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3.get_glyph (); |
|
|
|
case 3: return u.format3.get_glyph (); |
|
|
|
case 4: return u.format4.get_glyph (); |
|
|
|
case 4: return u.format4.get_glyph (); |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -287,7 +287,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: return u.format1 != o.u.format1; |
|
|
|
case 1: return u.format1 != o.u.format1; |
|
|
|
case 2: return u.format2 != o.u.format2; |
|
|
|
case 2: return u.format2 != o.u.format2; |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: return u.format3 != o.u.format3; |
|
|
|
case 3: return u.format3 != o.u.format3; |
|
|
|
case 4: return u.format4 != o.u.format4; |
|
|
|
case 4: return u.format4 != o.u.format4; |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -302,7 +302,7 @@ struct Coverage |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 1: it.u.format1 = u.format1.__end__ (); break; |
|
|
|
case 1: it.u.format1 = u.format1.__end__ (); break; |
|
|
|
case 2: it.u.format2 = u.format2.__end__ (); break; |
|
|
|
case 2: it.u.format2 = u.format2.__end__ (); break; |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
case 3: it.u.format3 = u.format3.__end__ (); break; |
|
|
|
case 3: it.u.format3 = u.format3.__end__ (); break; |
|
|
|
case 4: it.u.format4 = u.format4.__end__ (); break; |
|
|
|
case 4: it.u.format4 = u.format4.__end__ (); break; |
|
|
|
#endif |
|
|
|
#endif |
|
|
@ -314,7 +314,7 @@ struct Coverage |
|
|
|
private: |
|
|
|
private: |
|
|
|
unsigned int format; |
|
|
|
unsigned int format; |
|
|
|
union { |
|
|
|
union { |
|
|
|
#ifndef HB_NO_BORING_EXPANSION |
|
|
|
#ifndef HB_NO_BEYOND_64K |
|
|
|
CoverageFormat2_4<MediumTypes>::iter_t format4; /* Put this one first since it's larger; helps shut up compiler. */ |
|
|
|
CoverageFormat2_4<MediumTypes>::iter_t format4; /* Put this one first since it's larger; helps shut up compiler. */ |
|
|
|
CoverageFormat1_3<MediumTypes>::iter_t format3; |
|
|
|
CoverageFormat1_3<MediumTypes>::iter_t format3; |
|
|
|
#endif |
|
|
|
#endif |
|
|
|