Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (160343 => 160344)
--- trunk/Source/_javascript_Core/ChangeLog 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-12-10 01:28:05 UTC (rev 160344)
@@ -1,3 +1,29 @@
+2013-12-09 Sam Weinig <s...@webkit.org>
+
+ Replace use of WTF::FixedArray with std::array
+ https://bugs.webkit.org/show_bug.cgi?id=125475
+
+ Reviewed by Anders Carlsson.
+
+ * bytecode/CodeBlockHash.cpp:
+ (JSC::CodeBlockHash::dump):
+ * bytecode/Opcode.cpp:
+ (JSC::OpcodeStats::~OpcodeStats):
+ * dfg/DFGCSEPhase.cpp:
+ * ftl/FTLAbstractHeap.h:
+ * heap/MarkedSpace.h:
+ * parser/ParserArena.h:
+ * runtime/CodeCache.h:
+ * runtime/DateInstanceCache.h:
+ * runtime/JSGlobalObject.cpp:
+ (JSC::JSGlobalObject::reset):
+ * runtime/JSGlobalObject.h:
+ * runtime/JSString.h:
+ * runtime/LiteralParser.h:
+ * runtime/NumericStrings.h:
+ * runtime/RegExpCache.h:
+ * runtime/SmallStrings.h:
+
2013-12-09 Joseph Pecoraro <pecor...@apple.com>
Remove miscellaneous unnecessary build statements
Modified: trunk/Source/_javascript_Core/bytecode/CodeBlockHash.cpp (160343 => 160344)
--- trunk/Source/_javascript_Core/bytecode/CodeBlockHash.cpp 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/bytecode/CodeBlockHash.cpp 2013-12-10 01:28:05 UTC (rev 160344)
@@ -54,7 +54,7 @@
void CodeBlockHash::dump(PrintStream& out) const
{
- FixedArray<char, 7> buffer = integerToSixCharacterHashString(m_hash);
+ std::array<char, 7> buffer = integerToSixCharacterHashString(m_hash);
#if !ASSERT_DISABLED
CodeBlockHash recompute(buffer.data());
Modified: trunk/Source/_javascript_Core/bytecode/Opcode.cpp (160343 => 160344)
--- trunk/Source/_javascript_Core/bytecode/Opcode.cpp 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/bytecode/Opcode.cpp 2013-12-10 01:28:05 UTC (rev 160344)
@@ -31,8 +31,8 @@
#include "Opcode.h"
#if ENABLE(OPCODE_STATS)
+#include <array>
#include <wtf/DataLog.h>
-#include <wtf/FixedArray.h>
#endif
using namespace std;
@@ -102,7 +102,7 @@
for (int j = 0; j < numOpcodeIDs; ++j)
totalInstructionPairs += opcodePairCounts[i][j];
- FixedArray<int, numOpcodeIDs> sortedIndices;
+ std::array<int, numOpcodeIDs> sortedIndices;
for (int i = 0; i < numOpcodeIDs; ++i)
sortedIndices[i] = i;
qsort(sortedIndices.data(), numOpcodeIDs, sizeof(int), compareOpcodeIndices);
Modified: trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp (160343 => 160344)
--- trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/dfg/DFGCSEPhase.cpp 2013-12-10 01:28:05 UTC (rev 160344)
@@ -32,6 +32,7 @@
#include "DFGGraph.h"
#include "DFGPhase.h"
#include "JSCellInlines.h"
+#include <array>
#include <wtf/FastBitVector.h>
namespace JSC { namespace DFG {
@@ -1410,7 +1411,7 @@
BasicBlock* m_currentBlock;
Node* m_currentNode;
unsigned m_indexInBlock;
- FixedArray<unsigned, LastNodeType> m_lastSeen;
+ std::array<unsigned, LastNodeType> m_lastSeen;
bool m_changed; // Only tracks changes that have a substantive effect on other optimizations.
};
Modified: trunk/Source/_javascript_Core/ftl/FTLAbstractHeap.h (160343 => 160344)
--- trunk/Source/_javascript_Core/ftl/FTLAbstractHeap.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/ftl/FTLAbstractHeap.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -32,8 +32,8 @@
#include "FTLAbbreviations.h"
#include "JSCJSValue.h"
+#include <array>
#include <wtf/FastMalloc.h>
-#include <wtf/FixedArray.h>
#include <wtf/HashMap.h>
#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
@@ -171,7 +171,7 @@
size_t m_elementSize;
LValue m_scaleTerm;
bool m_canShift;
- FixedArray<AbstractField, 16> m_smallIndices;
+ std::array<AbstractField, 16> m_smallIndices;
struct WithoutZeroOrOneHashTraits : WTF::GenericHashTraits<ptrdiff_t> {
static void constructDeletedValue(ptrdiff_t& slot) { slot = 1; }
Modified: trunk/Source/_javascript_Core/heap/MarkedSpace.h (160343 => 160344)
--- trunk/Source/_javascript_Core/heap/MarkedSpace.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/heap/MarkedSpace.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -26,10 +26,10 @@
#include "MarkedAllocator.h"
#include "MarkedBlock.h"
#include "MarkedBlockSet.h"
+#include <array>
#include <wtf/PageAllocationAligned.h>
#include <wtf/Bitmap.h>
#include <wtf/DoublyLinkedList.h>
-#include <wtf/FixedArray.h>
#include <wtf/HashSet.h>
#include <wtf/Noncopyable.h>
#include <wtf/Vector.h>
@@ -137,8 +137,8 @@
static const size_t impreciseCount = impreciseCutoff / impreciseStep;
struct Subspace {
- FixedArray<MarkedAllocator, preciseCount> preciseAllocators;
- FixedArray<MarkedAllocator, impreciseCount> impreciseAllocators;
+ std::array<MarkedAllocator, preciseCount> preciseAllocators;
+ std::array<MarkedAllocator, impreciseCount> impreciseAllocators;
MarkedAllocator largeAllocator;
};
Modified: trunk/Source/_javascript_Core/parser/ParserArena.h (160343 => 160344)
--- trunk/Source/_javascript_Core/parser/ParserArena.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/parser/ParserArena.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -27,6 +27,7 @@
#define ParserArena_h
#include "Identifier.h"
+#include <array>
#include <wtf/SegmentedVector.h>
namespace JSC {
@@ -64,8 +65,8 @@
private:
IdentifierVector m_identifiers;
- FixedArray<Identifier*, MaximumCachableCharacter> m_shortIdentifiers;
- FixedArray<Identifier*, MaximumCachableCharacter> m_recentIdentifiers;
+ std::array<Identifier*, MaximumCachableCharacter> m_shortIdentifiers;
+ std::array<Identifier*, MaximumCachableCharacter> m_recentIdentifiers;
};
template <typename T>
Modified: trunk/Source/_javascript_Core/runtime/CodeCache.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/CodeCache.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/CodeCache.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -32,7 +32,6 @@
#include "Strong.h"
#include "WeakRandom.h"
#include <wtf/CurrentTime.h>
-#include <wtf/FixedArray.h>
#include <wtf/Forward.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/RandomNumber.h>
Modified: trunk/Source/_javascript_Core/runtime/DateInstanceCache.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/DateInstanceCache.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/DateInstanceCache.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -28,7 +28,7 @@
#include "JSCJSValue.h"
#include "JSDateMath.h"
-#include <wtf/FixedArray.h>
+#include <array>
#include <wtf/HashFunctions.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -86,7 +86,7 @@
CacheEntry& lookup(double d) { return m_cache[WTF::FloatHash<double>::hash(d) & (cacheSize - 1)]; }
- FixedArray<CacheEntry, cacheSize> m_cache;
+ std::array<CacheEntry, cacheSize> m_cache;
};
} // namespace JSC
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp 2013-12-10 01:28:05 UTC (rev 160344)
@@ -428,7 +428,7 @@
putDirectWithoutTransition(vm, vm.propertyNames->JSON, JSONObject::create(vm, JSONObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum);
putDirectWithoutTransition(vm, vm.propertyNames->Math, MathObject::create(vm, this, MathObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum);
- FixedArray<InternalFunction*, NUMBER_OF_TYPED_ARRAY_TYPES> typedArrayConstructors;
+ std::array<InternalFunction*, NUMBER_OF_TYPED_ARRAY_TYPES> typedArrayConstructors;
typedArrayConstructors[toIndex(TypeInt8)] = JSInt8ArrayConstructor::create(vm, JSInt8ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt8)].prototype.get(), "Int8Array");
typedArrayConstructors[toIndex(TypeInt16)] = JSInt16ArrayConstructor::create(vm, JSInt16ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt16)].prototype.get(), "Int16Array");
typedArrayConstructors[toIndex(TypeInt32)] = JSInt32ArrayConstructor::create(vm, JSInt32ArrayConstructor::createStructure(vm, this, m_functionPrototype.get()), m_typedArrays[toIndex(TypeInt32)].prototype.get(), "Int32Array");
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalObject.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/JSGlobalObject.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalObject.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -37,6 +37,7 @@
#include "VM.h"
#include "Watchpoint.h"
#include <_javascript_Core/JSBase.h>
+#include <array>
#include <wtf/HashSet.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassRefPtr.h>
@@ -227,7 +228,7 @@
WriteBarrier<Structure> structure;
};
- FixedArray<TypedArrayData, NUMBER_OF_TYPED_ARRAY_TYPES> m_typedArrays;
+ std::array<TypedArrayData, NUMBER_OF_TYPED_ARRAY_TYPES> m_typedArrays;
void* m_specialPointers[Special::TableSize]; // Special pointers used by the LLInt and JIT.
Modified: trunk/Source/_javascript_Core/runtime/JSString.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/JSString.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/JSString.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -22,12 +22,14 @@
#ifndef JSString_h
#define JSString_h
+
#include "CallFrame.h"
#include "CommonIdentifiers.h"
#include "Identifier.h"
#include "PropertyDescriptor.h"
#include "PropertySlot.h"
#include "Structure.h"
+#include <array>
namespace JSC {
@@ -322,7 +324,7 @@
JS_EXPORT_PRIVATE JSString* getIndexSlowCase(ExecState*, unsigned);
- mutable FixedArray<WriteBarrier<JSString>, s_maxInternalRopeLength> m_fibers;
+ mutable std::array<WriteBarrier<JSString>, s_maxInternalRopeLength> m_fibers;
};
Modified: trunk/Source/_javascript_Core/runtime/LiteralParser.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/LiteralParser.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/LiteralParser.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -29,6 +29,7 @@
#include "Identifier.h"
#include "JSCJSValue.h"
#include "JSGlobalObjectFunctions.h"
+#include <array>
#include <wtf/text/WTFString.h>
namespace JSC {
@@ -155,8 +156,8 @@
ParserMode m_mode;
String m_parseErrorMessage;
static unsigned const MaximumCachableCharacter = 128;
- FixedArray<Identifier, MaximumCachableCharacter> m_shortIdentifiers;
- FixedArray<Identifier, MaximumCachableCharacter> m_recentIdentifiers;
+ std::array<Identifier, MaximumCachableCharacter> m_shortIdentifiers;
+ std::array<Identifier, MaximumCachableCharacter> m_recentIdentifiers;
ALWAYS_INLINE const Identifier makeIdentifier(const LChar* characters, size_t length);
ALWAYS_INLINE const Identifier makeIdentifier(const UChar* characters, size_t length);
};
Modified: trunk/Source/_javascript_Core/runtime/NumericStrings.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/NumericStrings.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/NumericStrings.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -26,7 +26,7 @@
#ifndef NumericStrings_h
#define NumericStrings_h
-#include <wtf/FixedArray.h>
+#include <array>
#include <wtf/HashFunctions.h>
#include <wtf/text/WTFString.h>
@@ -87,10 +87,10 @@
return smallIntCache[i];
}
- FixedArray<CacheEntry<double>, cacheSize> doubleCache;
- FixedArray<CacheEntry<int>, cacheSize> intCache;
- FixedArray<CacheEntry<unsigned>, cacheSize> unsignedCache;
- FixedArray<String, cacheSize> smallIntCache;
+ std::array<CacheEntry<double>, cacheSize> doubleCache;
+ std::array<CacheEntry<int>, cacheSize> intCache;
+ std::array<CacheEntry<unsigned>, cacheSize> unsignedCache;
+ std::array<String, cacheSize> smallIntCache;
};
} // namespace JSC
Modified: trunk/Source/_javascript_Core/runtime/RegExpCache.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/RegExpCache.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/RegExpCache.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -30,7 +30,7 @@
#include "Strong.h"
#include "Weak.h"
#include "WeakInlines.h"
-#include <wtf/FixedArray.h>
+#include <array>
#include <wtf/HashMap.h>
#ifndef RegExpCache_h
@@ -58,7 +58,7 @@
void addToStrongCache(RegExp*);
RegExpCacheMap m_weakCache; // Holds all regular expressions currently live.
int m_nextEntryInStrongCache;
- WTF::FixedArray<Strong<RegExp>, maxStrongCacheableEntries> m_strongCache; // Holds a select few regular expressions that have compiled and executed
+ std::array<Strong<RegExp>, maxStrongCacheableEntries> m_strongCache; // Holds a select few regular expressions that have compiled and executed
VM* m_vm;
};
Modified: trunk/Source/_javascript_Core/runtime/SmallStrings.h (160343 => 160344)
--- trunk/Source/_javascript_Core/runtime/SmallStrings.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/_javascript_Core/runtime/SmallStrings.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -27,8 +27,6 @@
#define SmallStrings_h
#include "WriteBarrier.h"
-
-#include <wtf/FixedArray.h>
#include <wtf/Noncopyable.h>
#include <wtf/OwnPtr.h>
Modified: trunk/Source/WTF/ChangeLog (160343 => 160344)
--- trunk/Source/WTF/ChangeLog 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WTF/ChangeLog 2013-12-10 01:28:05 UTC (rev 160344)
@@ -1,3 +1,16 @@
+2013-12-09 Sam Weinig <s...@webkit.org>
+
+ Replace use of WTF::FixedArray with std::array
+ https://bugs.webkit.org/show_bug.cgi?id=125475
+
+ Reviewed by Anders Carlsson.
+
+ * wtf/AVLTree.h:
+ * wtf/Bitmap.h:
+ * wtf/SixCharacterHash.cpp:
+ (WTF::integerToSixCharacterHashString):
+ * wtf/SixCharacterHash.h:
+
2013-12-06 Roger Fong <roger_f...@apple.com> and Brent Fulgham <bfulg...@apple.com>
[Win] Support compiling with VS2013
Modified: trunk/Source/WTF/wtf/AVLTree.h (160343 => 160344)
--- trunk/Source/WTF/wtf/AVLTree.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WTF/wtf/AVLTree.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -32,8 +32,8 @@
#ifndef AVL_TREE_H_
#define AVL_TREE_H_
+#include <array>
#include <wtf/Assertions.h>
-#include <wtf/FixedArray.h>
namespace WTF {
@@ -71,7 +71,7 @@
void reset() { for (unsigned i = 0; i < maxDepth; ++i) m_data[i] = false; }
private:
- FixedArray<bool, maxDepth> m_data;
+ std::array<bool, maxDepth> m_data;
};
// How to determine maxDepth:
Modified: trunk/Source/WTF/wtf/Bitmap.h (160343 => 160344)
--- trunk/Source/WTF/wtf/Bitmap.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WTF/wtf/Bitmap.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -19,8 +19,8 @@
#ifndef Bitmap_h
#define Bitmap_h
+#include <array>
#include <wtf/Atomics.h>
-#include <wtf/FixedArray.h>
#include <wtf/StdLibExtras.h>
#include <stdint.h>
#include <string.h>
@@ -66,7 +66,7 @@
// a 64 bit unsigned int would give 0xffff8000
static const WordType _one_ = 1;
- FixedArray<WordType, words> bits;
+ std::array<WordType, words> bits;
};
template<size_t size, BitmapAtomicMode atomicMode, typename WordType>
Modified: trunk/Source/WTF/wtf/SixCharacterHash.cpp (160343 => 160344)
--- trunk/Source/WTF/wtf/SixCharacterHash.cpp 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WTF/wtf/SixCharacterHash.cpp 2013-12-10 01:28:05 UTC (rev 160344)
@@ -58,11 +58,11 @@
return hash;
}
-FixedArray<char, 7> integerToSixCharacterHashString(unsigned hash)
+std::array<char, 7> integerToSixCharacterHashString(unsigned hash)
{
- ASSERT(strlen(TABLE) == 62);
-
- FixedArray<char, 7> buffer;
+ static_assert(WTF_ARRAY_LENGTH(TABLE) - 1 == 62, "Six character hash table is not 62 characters long.");
+
+ std::array<char, 7> buffer;
unsigned accumulator = hash;
for (unsigned i = 6; i--;) {
buffer[i] = TABLE[accumulator % 62];
Modified: trunk/Source/WTF/wtf/SixCharacterHash.h (160343 => 160344)
--- trunk/Source/WTF/wtf/SixCharacterHash.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WTF/wtf/SixCharacterHash.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -26,7 +26,7 @@
#ifndef SixCharacterHash_h
#define SixCharacterHash_h
-#include <wtf/FixedArray.h>
+#include <array>
namespace WTF {
@@ -37,7 +37,7 @@
// Takes a 32-bit integer and constructs a six-character string that contains
// the character hash.
-WTF_EXPORT_PRIVATE FixedArray<char, 7> integerToSixCharacterHashString(unsigned);
+WTF_EXPORT_PRIVATE std::array<char, 7> integerToSixCharacterHashString(unsigned);
} // namespace WTF
Modified: trunk/Source/WebCore/ChangeLog (160343 => 160344)
--- trunk/Source/WebCore/ChangeLog 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WebCore/ChangeLog 2013-12-10 01:28:05 UTC (rev 160344)
@@ -1,3 +1,13 @@
+2013-12-09 Sam Weinig <s...@webkit.org>
+
+ Replace use of WTF::FixedArray with std::array
+ https://bugs.webkit.org/show_bug.cgi?id=125475
+
+ Reviewed by Anders Carlsson.
+
+ * crypto/parameters/CryptoAlgorithmAesCbcParams.h:
+ * platform/graphics/GlyphMetricsMap.h:
+
2013-12-09 Benjamin Poulain <bpoul...@apple.com>
Refactor the CFURLConnectionClient to be the synchronous implementation of an abstract network delegate
Modified: trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParams.h (160343 => 160344)
--- trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParams.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParams.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -27,7 +27,7 @@
#define CryptoAlgorithmAesCbcParams_h
#include "CryptoAlgorithmParameters.h"
-#include <wtf/FixedArray.h>
+#include <array>
#if ENABLE(SUBTLE_CRYPTO)
@@ -36,7 +36,7 @@
class CryptoAlgorithmAesCbcParams FINAL : public CryptoAlgorithmParameters {
public:
// The initialization vector. MUST be 16 bytes.
- FixedArray<char, 16> iv;
+ std::array<char, 16> iv;
virtual Class parametersClass() const OVERRIDE { return Class::AesCbcParams; }
};
Modified: trunk/Source/WebCore/platform/graphics/GlyphMetricsMap.h (160343 => 160344)
--- trunk/Source/WebCore/platform/graphics/GlyphMetricsMap.h 2013-12-10 00:37:20 UTC (rev 160343)
+++ trunk/Source/WebCore/platform/graphics/GlyphMetricsMap.h 2013-12-10 01:28:05 UTC (rev 160344)
@@ -30,7 +30,7 @@
#define GlyphMetricsMap_h
#include "Glyph.h"
-#include <wtf/FixedArray.h>
+#include <array>
#include <wtf/HashMap.h>
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
@@ -57,7 +57,7 @@
private:
struct GlyphMetricsPage {
static const size_t size = 256; // Usually covers Latin-1 in a single page.
- FixedArray<T, size> m_metrics;
+ std::array<T, size> m_metrics;
T metricsForGlyph(Glyph glyph) const { return m_metrics[glyph % size]; }
void setMetricsForGlyph(Glyph glyph, const T& metrics)