[indic-table] Minor
This commit is contained in:
parent
b900fa2c8c
commit
a133e6067a
|
@ -187,22 +187,23 @@ offset += ends[-1] - starts[-1]
|
||||||
print
|
print
|
||||||
print
|
print
|
||||||
occupancy = used * 100. / total
|
occupancy = used * 100. / total
|
||||||
|
page_bits = 12
|
||||||
print "}; /* Table items: %d; occupancy: %d%% */" % (offset, occupancy)
|
print "}; /* Table items: %d; occupancy: %d%% */" % (offset, occupancy)
|
||||||
print
|
print
|
||||||
print "INDIC_TABLE_ELEMENT_TYPE"
|
print "INDIC_TABLE_ELEMENT_TYPE"
|
||||||
print "hb_indic_get_categories (hb_codepoint_t u)"
|
print "hb_indic_get_categories (hb_codepoint_t u)"
|
||||||
print "{"
|
print "{"
|
||||||
print " switch (u >> 12)"
|
print " switch (u >> %d)" % page_bits
|
||||||
print " {"
|
print " {"
|
||||||
pages = set([u>>12 for u in starts+ends+singles.keys()])
|
pages = set([u>>page_bits for u in starts+ends+singles.keys()])
|
||||||
for p in sorted(pages):
|
for p in sorted(pages):
|
||||||
print " case 0x%0X:" % p
|
print " case 0x%0X:" % p
|
||||||
for (start,end) in zip (starts, ends):
|
for (start,end) in zip (starts, ends):
|
||||||
if p not in [start>>12, end>>12]: continue
|
if p not in [start>>page_bits, end>>page_bits]: continue
|
||||||
offset = "indic_offset_0x%04x" % start
|
offset = "indic_offset_0x%04x" % start
|
||||||
print " if (0x%04X <= u && u <= 0x%04X) return indic_table[u - 0x%04X + %s];" % (start, end, start, offset)
|
print " if (0x%04X <= u && u <= 0x%04X) return indic_table[u - 0x%04X + %s];" % (start, end, start, offset)
|
||||||
for u,d in singles.items ():
|
for u,d in singles.items ():
|
||||||
if p != u>>12: continue
|
if p != u>>page_bits: continue
|
||||||
print " if (unlikely (u == 0x%04X)) return _(%s,%s);" % (u, short[0][d[0]], short[1][d[1]])
|
print " if (unlikely (u == 0x%04X)) return _(%s,%s);" % (u, short[0][d[0]], short[1][d[1]])
|
||||||
print " break;"
|
print " break;"
|
||||||
print ""
|
print ""
|
||||||
|
|
Loading…
Reference in New Issue