further endianness work for font tags

This commit is contained in:
Riccardo Mottola 2018-03-02 08:59:08 +01:00
parent b00504df70
commit a1a49b119a
1 changed files with 7 additions and 5 deletions

View File

@ -219,9 +219,11 @@ struct writeBuf
};
#ifdef __ppc__
#define TAG_CFF 0x43464620
#define TAG_CFF 0x43464620
#define TAG_HEAD 0x68656164
#else
#define TAG_CFF 0x20464643
#define TAG_CFF 0x20464643
#define TAG_HEAD 0x64616568
#endif
bool
@ -246,7 +248,7 @@ ScaledFontMac::GetFontFileData(FontFileDataOutput aDataCallback, void *aBaton)
records[i].offset = offset;
records[i].data = data;
records[i].length = CFDataGetLength(data);
bool skipChecksumAdjust = (tag == 0x68656164); // 'head'
bool skipChecksumAdjust = (tag == TAG_HEAD); // 'head'
records[i].checkSum = CalcTableChecksum(reinterpret_cast<const uint32_t*>(CFDataGetBytePtr(data)),
records[i].length, skipChecksumAdjust);
offset += records[i].length;
@ -309,7 +311,7 @@ ScaledFontMac::GetFontFileData(FontFileDataOutput aDataCallback, void *aBaton)
}
records[i].data = data;
records[i].length = (uint32_t)dataLength;
bool skipChecksumAdjust = (tag == 0x68656164); // 'head'
bool skipChecksumAdjust = (tag == TAG_HEAD); // 'head'
records[i].checkSum = CalcTableChecksum(
reinterpret_cast<const uint32_t*>(CFDataGetBytePtr(data)),
records[i].length, skipChecksumAdjust);
@ -342,7 +344,7 @@ ScaledFontMac::GetFontFileData(FontFileDataOutput aDataCallback, void *aBaton)
// write tables
int checkSumAdjustmentOffset = 0;
for (CFIndex i = 0; i<count; i++) {
if (records[i].tag == 0x68656164) {
if (records[i].tag == TAG_HEAD) {
checkSumAdjustmentOffset = buf.offset + 2*4;
}
buf.writeMem(CFDataGetBytePtr(records[i].data), CFDataGetLength(records[i].data));