From 3228ae4a0dffe2cf2cc49db6a4ad024a3722f96b Mon Sep 17 00:00:00 2001 From: Toyam Cox Date: Thu, 30 Mar 2023 12:48:02 -0400 Subject: [PATCH] fix builds on 32bit If you put the uint32 type at the top instead of later, 32 bit builds All credit @ahesford --- ci/release/changelogs/next.md | 1 + lib/font/font.go | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 5651bfee0..b043fe110 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -6,5 +6,6 @@ #### Bugfixes ⛑️ +- Fix a bug in 32bit builds [#1115](https://github.com/terrastruct/d2/issues/1115) - Fix a bug in ID parsing [#322](https://github.com/terrastruct/d2/issues/322) - Fix a bug in watch mode parsing SVG [#1119](https://github.com/terrastruct/d2/issues/1119) diff --git a/lib/font/font.go b/lib/font/font.go index 698319b20..1b84a5e19 100644 --- a/lib/font/font.go +++ b/lib/font/font.go @@ -49,8 +49,8 @@ var ( WOFF_ENTRY_OFFSET_CHECKSUM = 16 // magic - MAGIC_WOFF = 0x774f4646 - MAGIC_CHECKSUM_ADJUSTMENT = 0xb1b0afba + MAGIC_WOFF uint32 = 0x774f4646 + MAGIC_CHECKSUM_ADJUSTMENT uint32 = 0xb1b0afba // sizes SIZE_OF_WOFF_HEADER = 44 @@ -85,7 +85,7 @@ func Sfnt2Woff(fontBuf []byte) ([]byte, error) { numTables := binary.BigEndian.Uint16(fontBuf[4:]) woffHeader := make([]byte, SIZE_OF_WOFF_HEADER) - binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_MAGIC:], uint32(MAGIC_WOFF)) + binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_MAGIC:], MAGIC_WOFF) binary.BigEndian.PutUint16(woffHeader[WOFF_OFFSET_NUM_TABLES:], numTables) binary.BigEndian.PutUint16(woffHeader[WOFF_OFFSET_SFNT_SIZE:], 0) binary.BigEndian.PutUint32(woffHeader[WOFF_OFFSET_META_OFFSET:], 0) @@ -148,7 +148,7 @@ func Sfnt2Woff(fontBuf []byte) ([]byte, error) { csum += tableEntry.CheckSum } - var checksumAdjustment = uint32(MAGIC_CHECKSUM_ADJUSTMENT) - csum + var checksumAdjustment = MAGIC_CHECKSUM_ADJUSTMENT - csum majorVersion := uint16(0) minVersion := uint16(1)