Skip to content

Commit c2dddae

Browse files
Merge pull request #481 from SixLabors/js/fix-480
Do not use default GlyphVector
2 parents aefb967 + ae2544b commit c2dddae

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

src/SixLabors.Fonts/Tables/TrueType/Glyphs/CompositeGlyphLoader.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@ internal sealed class CompositeGlyphLoader : GlyphLoader
1313

1414
public CompositeGlyphLoader(IEnumerable<Composite> composites, Bounds bounds, ReadOnlyMemory<byte> instructions)
1515
{
16-
this.composites = composites.ToArray();
16+
this.composites = [.. composites];
1717
this.bounds = bounds;
1818
this.instructions = instructions;
1919
}
2020

2121
public override GlyphVector CreateGlyph(GlyphTable table)
2222
{
23-
List<ControlPoint> controlPoints = new();
24-
List<ushort> endPoints = new();
23+
List<ControlPoint> controlPoints = [];
24+
List<ushort> endPoints = [];
2525
for (int i = 0; i < this.composites.Length; i++)
2626
{
2727
Composite composite = this.composites[i];
28-
var clone = GlyphVector.DeepClone(table.GetGlyph(composite.GlyphIndex));
28+
GlyphVector clone = GlyphVector.DeepClone(table.GetGlyph(composite.GlyphIndex));
2929
GlyphVector.TransformInPlace(ref clone, composite.Transformation);
3030
ushort endPointOffset = (ushort)controlPoints.Count;
3131

@@ -41,7 +41,7 @@ public override GlyphVector CreateGlyph(GlyphTable table)
4141

4242
public static CompositeGlyphLoader LoadCompositeGlyph(BigEndianBinaryReader reader, in Bounds bounds)
4343
{
44-
List<Composite> composites = new();
44+
List<Composite> composites = [];
4545
CompositeGlyphFlags flags;
4646
do
4747
{
@@ -76,7 +76,7 @@ public static CompositeGlyphLoader LoadCompositeGlyph(BigEndianBinaryReader read
7676
}
7777
while ((flags & CompositeGlyphFlags.MoreComponents) != 0);
7878

79-
byte[] instructions = Array.Empty<byte>();
79+
byte[] instructions = [];
8080
if ((flags & CompositeGlyphFlags.WeHaveInstructions) != 0)
8181
{
8282
// Read the instructions if they exist.

src/SixLabors.Fonts/Tables/TrueType/Glyphs/GlyphTable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ internal virtual GlyphVector GetGlyph(int index)
2525
{
2626
if (index < 0 || index >= this.loaders.Length)
2727
{
28-
return default;
28+
return GlyphVector.Empty();
2929
}
3030

3131
return this.glyphCache.GetOrAdd(index, i => this.loaders[i].CreateGlyph(this));

src/SixLabors.Fonts/Tables/TrueType/Glyphs/GlyphVector.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,11 @@ public static void Hint(
8181
return;
8282
}
8383

84-
var controlPoints = new ControlPoint[glyph.ControlPoints.Count + 4];
85-
controlPoints[controlPoints.Length - 4].Point = pp1;
86-
controlPoints[controlPoints.Length - 3].Point = pp2;
87-
controlPoints[controlPoints.Length - 2].Point = pp3;
88-
controlPoints[controlPoints.Length - 1].Point = pp4;
84+
ControlPoint[] controlPoints = new ControlPoint[glyph.ControlPoints.Count + 4];
85+
controlPoints[^4].Point = pp1;
86+
controlPoints[^3].Point = pp2;
87+
controlPoints[^2].Point = pp3;
88+
controlPoints[^1].Point = pp4;
8989

9090
for (int i = 0; i < glyph.ControlPoints.Count; i++)
9191
{
@@ -107,8 +107,8 @@ public static void Hint(
107107
/// <returns>The cloned <see cref="GlyphVector"/>.</returns>
108108
public static GlyphVector DeepClone(GlyphVector src)
109109
{
110-
List<ControlPoint> controlPoints = new(src.ControlPoints);
111-
List<ushort> endPoints = new(src.EndPoints);
110+
List<ControlPoint> controlPoints = [.. src.ControlPoints];
111+
List<ushort> endPoints = [.. src.EndPoints];
112112

113113
return new(controlPoints, endPoints, src.Bounds, src.Instructions, src.IsComposite);
114114
}

0 commit comments

Comments
 (0)