Convert to extern std::array<> in /chromefontdata.

Fewer chances to get the sizes wrong with spans/arrays.

Change-Id: Icb582f1fe653f45ec7554bab49b86beabc79e61a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/118813
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
diff --git a/core/fxge/cfx_fontmgr.cpp b/core/fxge/cfx_fontmgr.cpp
index f479128..8da75e6 100644
--- a/core/fxge/cfx_fontmgr.cpp
+++ b/core/fxge/cfx_fontmgr.cpp
@@ -6,6 +6,7 @@
 
 #include "core/fxge/cfx_fontmgr.h"
 
+#include <array>
 #include <iterator>
 #include <memory>
 #include <utility>
@@ -20,32 +21,27 @@
 
 namespace {
 
-struct BuiltinFont {
-  const uint8_t* m_pFontData;  // Raw, POD struct.
-  uint32_t m_dwSize;
-};
+constexpr std::array<pdfium::span<const uint8_t>,
+                     CFX_FontMapper::kNumStandardFonts>
+    kFoxitFonts = {{
+        kFoxitFixedFontData,
+        kFoxitFixedBoldFontData,
+        kFoxitFixedBoldItalicFontData,
+        kFoxitFixedItalicFontData,
+        kFoxitSansFontData,
+        kFoxitSansBoldFontData,
+        kFoxitSansBoldItalicFontData,
+        kFoxitSansItalicFontData,
+        kFoxitSerifFontData,
+        kFoxitSerifBoldFontData,
+        kFoxitSerifBoldItalicFontData,
+        kFoxitSerifItalicFontData,
+        kFoxitSymbolFontData,
+        kFoxitDingbatsFontData,
+    }};
 
-constexpr BuiltinFont kFoxitFonts[] = {
-    {kFoxitFixedFontData, 17597},
-    {kFoxitFixedBoldFontData, 18055},
-    {kFoxitFixedBoldItalicFontData, 19151},
-    {kFoxitFixedItalicFontData, 18746},
-    {kFoxitSansFontData, 15025},
-    {kFoxitSansBoldFontData, 16344},
-    {kFoxitSansBoldItalicFontData, 16418},
-    {kFoxitSansItalicFontData, 16339},
-    {kFoxitSerifFontData, 19469},
-    {kFoxitSerifBoldFontData, 19395},
-    {kFoxitSerifBoldItalicFontData, 20733},
-    {kFoxitSerifItalicFontData, 21227},
-    {kFoxitSymbolFontData, 16729},
-    {kFoxitDingbatsFontData, 29513},
-};
-static_assert(std::size(kFoxitFonts) == CFX_FontMapper::kNumStandardFonts,
-              "Wrong font count");
-
-constexpr BuiltinFont kGenericSansFont = {kFoxitSansMMFontData, 66919};
-constexpr BuiltinFont kGenericSerifFont = {kFoxitSerifMMFontData, 113417};
+constexpr pdfium::span<const uint8_t> kGenericSansFont = kFoxitSansMMFontData;
+constexpr pdfium::span<const uint8_t> kGenericSerifFont = kFoxitSerifMMFontData;
 
 FXFT_LibraryRec* FTLibraryInitHelper() {
   FXFT_LibraryRec* pLibrary = nullptr;
@@ -128,21 +124,17 @@
 
 // static
 pdfium::span<const uint8_t> CFX_FontMgr::GetStandardFont(size_t index) {
-  CHECK_LT(index, std::size(kFoxitFonts));
-  return pdfium::make_span(kFoxitFonts[index].m_pFontData,
-                           kFoxitFonts[index].m_dwSize);
+  return kFoxitFonts[index];
 }
 
 // static
 pdfium::span<const uint8_t> CFX_FontMgr::GetGenericSansFont() {
-  return pdfium::make_span(kGenericSansFont.m_pFontData,
-                           kGenericSansFont.m_dwSize);
+  return kGenericSansFont;
 }
 
 // static
 pdfium::span<const uint8_t> CFX_FontMgr::GetGenericSerifFont() {
-  return pdfium::make_span(kGenericSerifFont.m_pFontData,
-                           kGenericSerifFont.m_dwSize);
+  return kGenericSerifFont;
 }
 
 bool CFX_FontMgr::FreeTypeVersionSupportsHinting() const {
diff --git a/core/fxge/fontdata/chromefontdata/FoxitDingbats.cpp b/core/fxge/fontdata/chromefontdata/FoxitDingbats.cpp
index 3c61db0..0abf3ad 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitDingbats.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitDingbats.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitDingbatsFontData[29513] = {
+const std::array<uint8_t, 29513> kFoxitDingbatsFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x11, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x44, 0x69, 0x6e, 0x67, 0x62, 0x61, 0x74, 0x73, 0x4f, 0x54,
     0x46, 0x0,  0x1,  0x1,  0x1,  0x25, 0xf8, 0x10, 0x0,  0xf8, 0xe4, 0x1,
@@ -2466,4 +2466,5 @@
     0xb,  0x9a, 0x85, 0x97, 0x1e, 0x82, 0x9d, 0x80, 0x98, 0xb,  0x99, 0x8b,
     0xf7, 0x2,  0x3e, 0xb7, 0xac, 0x99, 0xb,  0xfb, 0xad, 0x5,  0xf7, 0x35,
     0x7,  0xe,  0x13, 0x94, 0x54, 0xec, 0x1b, 0xb,  0x1f, 0x8d, 0x8d, 0x5,
-    0xb,  0x5,  0x89, 0x7,  0xb};
+    0xb,  0x5,  0x89, 0x7,  0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitFixed.cpp b/core/fxge/fontdata/chromefontdata/FoxitFixed.cpp
index 1ec59bf..183f997 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitFixed.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitFixed.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitFixedFontData[17597] = {
+const std::array<uint8_t, 17597> kFoxitFixedFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0xe,  0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4f, 0x54, 0x46, 0x0,  0x1,
     0x1,  0x1,  0x23, 0xf8, 0x10, 0x0,  0xf8, 0x2a, 0x1,  0xf8, 0x2b, 0x2,
@@ -1473,4 +1473,5 @@
     0xa4, 0xbe, 0x1,  0x73, 0xf9, 0x1c, 0x3,  0xb,  0xf8, 0xa9, 0x15, 0xd4,
     0xf7, 0x10, 0x42, 0x6,  0xb,  0xf7, 0xf,  0x1e, 0xf0, 0x54, 0x7,  0xe,
     0x6,  0xfb, 0x2e, 0xfb, 0x4,  0xb,  0x1,  0xf7, 0xa5, 0xc4, 0x3,  0xb,
-    0xc2, 0xf7, 0x33, 0xc3, 0xb};
+    0xc2, 0xf7, 0x33, 0xc3, 0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitFixedBold.cpp b/core/fxge/fontdata/chromefontdata/FoxitFixedBold.cpp
index 84a6768..6dc3077 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitFixedBold.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitFixedBold.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitFixedBoldFontData[18055] = {
+const std::array<uint8_t, 18055> kFoxitFixedBoldFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x13, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4f, 0x54, 0x46, 0x2d, 0x42,
     0x6f, 0x6c, 0x64, 0x0,  0x1,  0x1,  0x1,  0x24, 0xf8, 0x10, 0x0,  0xf8,
@@ -1511,4 +1511,5 @@
     0x15, 0xbd, 0xca, 0x45, 0xbf, 0x5,  0xb,  0xc5, 0xfb, 0xc3, 0xf7, 0xd,
     0x5,  0xe,  0xa1, 0xd8, 0x1e, 0xf6, 0x29, 0x7,  0xe,  0x15, 0xf7, 0x3,
     0xf7, 0x23, 0xb,  0x30, 0xde, 0xfc, 0x10, 0x38, 0xb,  0xd1, 0xf8, 0xc,
-    0x1,  0xb,  0x8b, 0xe9, 0xf7, 0x8f, 0xb};
+    0x1,  0xb,  0x8b, 0xe9, 0xf7, 0x8f, 0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitFixedBoldItalic.cpp b/core/fxge/fontdata/chromefontdata/FoxitFixedBoldItalic.cpp
index 63da1ce..db40f51 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitFixedBoldItalic.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitFixedBoldItalic.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitFixedBoldItalicFontData[19151] = {
+const std::array<uint8_t, 19151> kFoxitFixedBoldItalicFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x19, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4f, 0x54, 0x46, 0x2d, 0x42,
     0x6f, 0x6c, 0x64, 0x49, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x0,  0x1,  0x1,
@@ -1602,4 +1602,5 @@
     0xb,  0x55, 0x15, 0x77, 0x33, 0x5,  0xf7, 0xd7, 0x6,  0xb,  0xf7, 0x73,
     0x77, 0x1,  0xb,  0x15, 0xf7, 0x3,  0x6,  0xb,  0x28, 0xfb, 0x42, 0x2a,
     0xb,  0x6,  0x9e, 0xe8, 0x5,  0xb,  0x5,  0xfb, 0x90, 0x6,  0xb,  0x5,
-    0xec, 0x6,  0xb,  0xf7, 0x20, 0x5,  0xb,  0xfb, 0x56, 0x5,  0xb};
+    0xec, 0x6,  0xb,  0xf7, 0x20, 0x5,  0xb,  0xfb, 0x56, 0x5,  0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitFixedItalic.cpp b/core/fxge/fontdata/chromefontdata/FoxitFixedItalic.cpp
index ba56707..0a670eb 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitFixedItalic.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitFixedItalic.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitFixedItalicFontData[18746] = {
+const std::array<uint8_t, 18746> kFoxitFixedItalicFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x15, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4f, 0x54, 0x46, 0x2d, 0x49,
     0x74, 0x61, 0x6c, 0x69, 0x63, 0x0,  0x1,  0x1,  0x1,  0x23, 0xf8, 0x10,
@@ -1569,4 +1569,5 @@
     0xbe, 0x6,  0xb,  0x6,  0x80, 0x57, 0x5,  0xb,  0x5,  0xfb, 0x18, 0x6,
     0xb,  0xf7, 0x78, 0x77, 0x1,  0xb,  0x15, 0xdd, 0x6,  0xb,  0xf7, 0x1f,
     0x6,  0xb,  0xf8, 0x5a, 0x5,  0xb,  0xf7, 0x8,  0x5,  0xb,  0x5,  0x3b,
-    0x6,  0xb};
+    0x6,  0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSans.cpp b/core/fxge/fontdata/chromefontdata/FoxitSans.cpp
index 79d194c..60a2981 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSans.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSans.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSansFontData[15025] = {
+const std::array<uint8_t, 15025> kFoxitSansFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0xd,  0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x61, 0x6e, 0x73, 0x4f, 0x54, 0x46, 0x0,  0x1,  0x1,
     0x1,  0x24, 0xf8, 0x10, 0x0,  0xf8, 0x1c, 0x1,  0xf8, 0x1d, 0x2,  0xf8,
@@ -1259,4 +1259,5 @@
     0xe,  0xf7, 0x1d, 0x59, 0xa,  0xf7, 0x5,  0x8a, 0x77, 0x12, 0xb,  0x7d,
     0xd3, 0xf8, 0x2a, 0xd3, 0xb,  0xb8, 0xe5, 0xf7, 0xb2, 0xe5, 0xb,  0xf7,
     0x54, 0xd9, 0xfb, 0x54, 0xb,  0x7c, 0xd7, 0x60, 0x76, 0xb,  0x33, 0x6,
-    0xe};
+    0xe,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSansBold.cpp b/core/fxge/fontdata/chromefontdata/FoxitSansBold.cpp
index 5a54eae..f0371f3 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSansBold.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSansBold.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSansBoldFontData[16344] = {
+const std::array<uint8_t, 16344> kFoxitSansBoldFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x12, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x61, 0x6e, 0x73, 0x4f, 0x54, 0x46, 0x2d, 0x42, 0x6f,
     0x6c, 0x64, 0x0,  0x1,  0x1,  0x1,  0x24, 0xf8, 0x10, 0x0,  0xf8, 0x1c,
@@ -1368,4 +1368,5 @@
     0xf8, 0x9e, 0x77, 0x1,  0xb1, 0xb,  0x15, 0xf7, 0x7,  0xf7, 0x8,  0xfb,
     0x7,  0x6,  0xb,  0xf9, 0x88, 0x5,  0xfb, 0x13, 0x6,  0xe,  0x1,  0xd0,
     0x7d, 0xa,  0xb,  0x15, 0xf7, 0xa,  0x6,  0xc4, 0xb,  0x5,  0xfb, 0x31,
-    0x6,  0xb,  0x5,  0xfb, 0x2f, 0x6,  0xb,  0x89, 0x42, 0x5a, 0x7f, 0xb};
+    0x6,  0xb,  0x5,  0xfb, 0x2f, 0x6,  0xb,  0x89, 0x42, 0x5a, 0x7f, 0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSansBoldItalic.cpp b/core/fxge/fontdata/chromefontdata/FoxitSansBoldItalic.cpp
index 475f875..0ace4f7 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSansBoldItalic.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSansBoldItalic.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSansBoldItalicFontData[16418] = {
+const std::array<uint8_t, 16418> kFoxitSansBoldItalicFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x17, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x61, 0x6e, 0x73, 0x50, 0x53, 0x2d, 0x42, 0x6f, 0x6c,
     0x64, 0x49, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x0,  0x1,  0x1,  0x1,  0x27,
@@ -1375,4 +1375,5 @@
     0x5,  0xfb, 0x26, 0x6,  0xb,  0x5,  0xfb, 0x28, 0x6,  0xb,  0xf7, 0x2b,
     0x1,  0xb,  0xf7, 0xc,  0x1,  0xb,  0xfb, 0x2b, 0x6,  0xb,  0x5,  0xfb,
     0x17, 0xb,  0xa0, 0xe8, 0x93, 0xb,  0xfb, 0x22, 0x6,  0xb,  0xf7, 0x22,
-    0x6,  0xb};
+    0x6,  0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSansItalic.cpp b/core/fxge/fontdata/chromefontdata/FoxitSansItalic.cpp
index 5af176d..acdce43 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSansItalic.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSansItalic.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSansItalicFontData[16339] = {
+const std::array<uint8_t, 16339> kFoxitSansItalicFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x14, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x61, 0x6e, 0x73, 0x4f, 0x54, 0x46, 0x2d, 0x49, 0x74,
     0x61, 0x6c, 0x69, 0x63, 0x0,  0x1,  0x1,  0x1,  0x27, 0xf8, 0x10, 0x0,
@@ -1368,4 +1368,5 @@
     0xf6, 0x4c, 0xa,  0xb,  0xf4, 0xef, 0xf8, 0x9d, 0xef, 0xb,  0x6,  0x7d,
     0x87, 0x85, 0x72, 0xb,  0x6,  0x9c, 0xdf, 0x5,  0xb,  0x6,  0x9d, 0xdc,
     0x5,  0xb,  0xf8, 0x74, 0x78, 0xdc, 0xb,  0xf7, 0x21, 0x5,  0xb,  0x15,
-    0xe6, 0x6,  0xb,  0xf7, 0x1f, 0x5,  0xb};
+    0xe6, 0x6,  0xb,  0xf7, 0x1f, 0x5,  0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSansMM.cpp b/core/fxge/fontdata/chromefontdata/FoxitSansMM.cpp
index 985a6bb..47d8b96 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSansMM.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSansMM.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSansMMFontData[66919] = {
+const std::array<uint8_t, 66919> kFoxitSansMMFontData = {{
     0x80, 0x01, 0xD2, 0x29, 0x00, 0x00, 0x25, 0x21, 0x50, 0x53, 0x2D, 0x41,
     0x64, 0x6F, 0x62, 0x65, 0x46, 0x6F, 0x6E, 0x74, 0x2D, 0x31, 0x2E, 0x30,
     0x3A, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x53, 0x61, 0x6E, 0x73,
@@ -5584,4 +5584,4 @@
     0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
     0x30, 0x30, 0x30, 0x30, 0x0D, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x74, 0x6F,
     0x6D, 0x61, 0x72, 0x6B, 0x0D, 0x80, 0x03,
-};
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSerif.cpp b/core/fxge/fontdata/chromefontdata/FoxitSerif.cpp
index 9ec8721..22a38a4 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSerif.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSerif.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSerifFontData[19469] = {
+const std::array<uint8_t, 19469> kFoxitSerifFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0xe,  0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x65, 0x72, 0x69, 0x66, 0x4f, 0x54, 0x46, 0x0,  0x1,
     0x1,  0x1,  0x26, 0xf8, 0x10, 0x0,  0xf8, 0x1c, 0x1,  0xf8, 0x1d, 0x2,
@@ -1629,4 +1629,5 @@
     0x7b, 0x1b, 0x6c, 0x8a, 0x81, 0x1d, 0xb,  0x7b, 0x69, 0x29, 0x78, 0xe2,
     0xc0, 0x7f, 0x1e, 0xb,  0xfb, 0x6e, 0xdf, 0x37, 0xf1, 0xb,  0xf7, 0x54,
     0xfb, 0x41, 0x77, 0xb,  0x1a, 0xfb, 0x38, 0x7,  0xb,  0x72, 0x6b, 0x1e,
-    0xb,  0xf7, 0x6,  0x3,  0xb};
+    0xb,  0xf7, 0x6,  0x3,  0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSerifBold.cpp b/core/fxge/fontdata/chromefontdata/FoxitSerifBold.cpp
index d886483..a68ba1f 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSerifBold.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSerifBold.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSerifBoldFontData[19395] = {
+const std::array<uint8_t, 19395> kFoxitSerifBoldFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x13, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x65, 0x72, 0x69, 0x66, 0x4f, 0x54, 0x46, 0x2d, 0x42,
     0x6f, 0x6c, 0x64, 0x0,  0x1,  0x1,  0x1,  0x26, 0xf8, 0x10, 0x0,  0xf8,
@@ -1623,4 +1623,5 @@
     0xbc, 0x5d, 0xc5, 0x1e, 0xb,  0x3e, 0x98, 0x76, 0xf8, 0x9e, 0x77, 0x1,
     0xaa, 0xb,  0xfb, 0x55, 0xfb, 0x35, 0xfb, 0x17, 0xfb, 0x6e, 0xb,  0xf7,
     0x6,  0xd1, 0xf7, 0x6,  0xb,  0x12, 0xa4, 0xf7, 0x1f, 0xb,  0xf7, 0x83,
-    0xad, 0x6,  0xb};
+    0xad, 0x6,  0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSerifBoldItalic.cpp b/core/fxge/fontdata/chromefontdata/FoxitSerifBoldItalic.cpp
index 724537a..cccac55 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSerifBoldItalic.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSerifBoldItalic.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSerifBoldItalicFontData[20733] = {
+const std::array<uint8_t, 20733> kFoxitSerifBoldItalicFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x19, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x65, 0x72, 0x69, 0x66, 0x4f, 0x54, 0x46, 0x2d, 0x42,
     0x6f, 0x6c, 0x64, 0x49, 0x74, 0x61, 0x6c, 0x69, 0x63, 0x0,  0x1,  0x1,
@@ -1734,4 +1734,5 @@
     0x76, 0x54, 0xa,  0xb,  0xfb, 0xce, 0xfb, 0x3a, 0x76, 0xf9, 0xfd, 0x77,
     0xb,  0x1a, 0x87, 0x8a, 0x86, 0x8a, 0xb,  0x15, 0xf7, 0x74, 0x9e, 0x6,
     0xb,  0xf7, 0x40, 0x5,  0xc6, 0xcd, 0xb,  0xf7, 0x1a, 0xd5, 0xf7, 0x1a,
-    0xb,  0x74, 0x88, 0x1d, 0xb,  0x15, 0xcb, 0xbd, 0xb};
+    0xb,  0x74, 0x88, 0x1d, 0xb,  0x15, 0xcb, 0xbd, 0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSerifItalic.cpp b/core/fxge/fontdata/chromefontdata/FoxitSerifItalic.cpp
index 8fcda85..5f45f09 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSerifItalic.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSerifItalic.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSerifItalicFontData[21227] = {
+const std::array<uint8_t, 21227> kFoxitSerifItalicFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0x15, 0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x65, 0x72, 0x69, 0x66, 0x4f, 0x54, 0x46, 0x2d, 0x49,
     0x74, 0x61, 0x6c, 0x69, 0x63, 0x0,  0x1,  0x1,  0x1,  0x2a, 0xf8, 0x10,
@@ -1775,4 +1775,5 @@
     0x3,  0xb,  0x16, 0xf7, 0x5a, 0x9b, 0x6,  0xb,  0x67, 0x6e, 0xa8, 0xaf,
     0x1f, 0xb,  0x7b, 0xf7, 0xa5, 0x9b, 0x7,  0xb,  0x15, 0x9b, 0xa,  0xb,
     0x9b, 0xfb, 0x51, 0x7b, 0x7,  0xb,  0xac, 0xf7, 0x97, 0xac, 0xb,  0xc4,
-    0xa7, 0xd4, 0xb,  0x9b, 0xfb, 0x5b, 0xb,  0x1b, 0x83, 0x85, 0xb};
+    0xa7, 0xd4, 0xb,  0x9b, 0xfb, 0x5b, 0xb,  0x1b, 0x83, 0x85, 0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSerifMM.cpp b/core/fxge/fontdata/chromefontdata/FoxitSerifMM.cpp
index 6389782..8dda8d5 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSerifMM.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSerifMM.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSerifMMFontData[113417] = {
+const std::array<uint8_t, 113417> kFoxitSerifMMFontData = {{
     0x80, 0x01, 0xD6, 0x29, 0x00, 0x00, 0x25, 0x21, 0x50, 0x53, 0x2D, 0x41,
     0x64, 0x6F, 0x62, 0x65, 0x46, 0x6F, 0x6E, 0x74, 0x2D, 0x31, 0x2E, 0x30,
     0x3A, 0x20, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x69,
@@ -9459,4 +9459,4 @@
     0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
     0x30, 0x30, 0x0D, 0x63, 0x6C, 0x65, 0x61, 0x72, 0x74, 0x6F, 0x6D, 0x61,
     0x72, 0x6B, 0x0D, 0x80, 0x03,
-};
+}};
diff --git a/core/fxge/fontdata/chromefontdata/FoxitSymbol.cpp b/core/fxge/fontdata/chromefontdata/FoxitSymbol.cpp
index 2a460e6..3c681af 100644
--- a/core/fxge/fontdata/chromefontdata/FoxitSymbol.cpp
+++ b/core/fxge/fontdata/chromefontdata/FoxitSymbol.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
 
-const unsigned char kFoxitSymbolFontData[16729] = {
+const std::array<uint8_t, 16729> kFoxitSymbolFontData = {{
     0x1,  0x0,  0x4,  0x2,  0x0,  0x1,  0x1,  0x1,  0xf,  0x43, 0x68, 0x72,
     0x6f, 0x6d, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x4f, 0x54, 0x46, 0x0,
     0x1,  0x1,  0x1,  0x26, 0xf8, 0x10, 0x0,  0xf8, 0xad, 0x1,  0xf8, 0xae,
@@ -1401,4 +1401,5 @@
     0xe,  0x1,  0xb3, 0xc2, 0xf8, 0xda, 0xc2, 0x3,  0xb3, 0xb,  0x41, 0xa,
     0xfb, 0x17, 0xb,  0x15, 0xa9, 0xa6, 0xaa, 0x9f, 0xb8, 0x1b, 0xaa, 0xb,
     0x8a, 0x1f, 0xfc, 0x29, 0x54, 0x6,  0xe,  0x90, 0x90, 0x8f, 0x8e, 0x8d,
-    0xb};
+    0xb,
+}};
diff --git a/core/fxge/fontdata/chromefontdata/chromefontdata.h b/core/fxge/fontdata/chromefontdata/chromefontdata.h
index 7d6fb78..e75058d 100644
--- a/core/fxge/fontdata/chromefontdata/chromefontdata.h
+++ b/core/fxge/fontdata/chromefontdata/chromefontdata.h
@@ -7,21 +7,25 @@
 #ifndef CORE_FXGE_FONTDATA_CHROMEFONTDATA_CHROMEFONTDATA_H_
 #define CORE_FXGE_FONTDATA_CHROMEFONTDATA_CHROMEFONTDATA_H_
 
-extern const unsigned char kFoxitFixedItalicFontData[18746];
-extern const unsigned char kFoxitFixedFontData[17597];
-extern const unsigned char kFoxitSansItalicFontData[16339];
-extern const unsigned char kFoxitSansFontData[15025];
-extern const unsigned char kFoxitSerifItalicFontData[21227];
-extern const unsigned char kFoxitSerifFontData[19469];
-extern const unsigned char kFoxitFixedBoldItalicFontData[19151];
-extern const unsigned char kFoxitFixedBoldFontData[18055];
-extern const unsigned char kFoxitSansBoldItalicFontData[16418];
-extern const unsigned char kFoxitSansBoldFontData[16344];
-extern const unsigned char kFoxitSerifBoldItalicFontData[20733];
-extern const unsigned char kFoxitSerifBoldFontData[19395];
-extern const unsigned char kFoxitSymbolFontData[16729];
-extern const unsigned char kFoxitDingbatsFontData[29513];
-extern const unsigned char kFoxitSerifMMFontData[113417];
-extern const unsigned char kFoxitSansMMFontData[66919];
+#include <stdint.h>
+
+#include <array>
+
+extern const std::array<uint8_t, 18746> kFoxitFixedItalicFontData;
+extern const std::array<uint8_t, 17597> kFoxitFixedFontData;
+extern const std::array<uint8_t, 16339> kFoxitSansItalicFontData;
+extern const std::array<uint8_t, 15025> kFoxitSansFontData;
+extern const std::array<uint8_t, 21227> kFoxitSerifItalicFontData;
+extern const std::array<uint8_t, 19469> kFoxitSerifFontData;
+extern const std::array<uint8_t, 19151> kFoxitFixedBoldItalicFontData;
+extern const std::array<uint8_t, 18055> kFoxitFixedBoldFontData;
+extern const std::array<uint8_t, 16418> kFoxitSansBoldItalicFontData;
+extern const std::array<uint8_t, 16344> kFoxitSansBoldFontData;
+extern const std::array<uint8_t, 20733> kFoxitSerifBoldItalicFontData;
+extern const std::array<uint8_t, 19395> kFoxitSerifBoldFontData;
+extern const std::array<uint8_t, 16729> kFoxitSymbolFontData;
+extern const std::array<uint8_t, 29513> kFoxitDingbatsFontData;
+extern const std::array<uint8_t, 113417> kFoxitSerifMMFontData;
+extern const std::array<uint8_t, 66919> kFoxitSansMMFontData;
 
 #endif  // CORE_FXGE_FONTDATA_CHROMEFONTDATA_CHROMEFONTDATA_H_