Skip to content

Commit 2858ee2

Browse files
authored
Merge pull request #1 from GrahamTheCoder/decrease-allocations
Decrease allocations
2 parents 6ed0b74 + 12f3f2b commit 2858ee2

21 files changed

Lines changed: 526 additions & 407 deletions

Html2Text.PerfTests/Html2Text.PerfTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net8.0</TargetFramework>
5+
<TargetFrameworks>net8.0;net10.0</TargetFrameworks>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
88
</PropertyGroup>

Html2Text.RegressionTests/Html2Text.RegressionTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net462;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net462;net8.0;net10.0</TargetFrameworks>
55
<LangVersion>12.0</LangVersion>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>

Html2Text.Tests/DataTableDetectorTests.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Html2Text.Parsing;
1+
using System;
2+
using Html2Text.Parsing;
23
using NUnit.Framework;
34
using System.Collections.Generic;
45
using Html2Text.Rendering.Tables;
@@ -12,7 +13,7 @@ public class DataTableDetectorTests
1213
public void IsDataTable_Returns_False_For_TextNode()
1314
{
1415
// arrange
15-
var node = new Node { Text = "some text" };
16+
var node = new Node { Chars = "some text".AsMemory() };
1617

1718
// act
1819
var result = DataTableDetector.IsDataTable(node);
@@ -25,7 +26,7 @@ public void IsDataTable_Returns_False_For_TextNode()
2526
public void IsDataTable_Returns_False_For_NonTableNode()
2627
{
2728
// arrange
28-
var node = new Node { TagName = "div" };
29+
var node = new Node { TagChars = "div".AsMemory() };
2930

3031
// act
3132
var result = DataTableDetector.IsDataTable(node);
@@ -38,7 +39,7 @@ public void IsDataTable_Returns_False_For_NonTableNode()
3839
public void IsDataTable_Returns_False_For_TableWithNoChildNodes()
3940
{
4041
// arrange
41-
var node = new Node { TagName = "table" };
42+
var node = new Node { TagChars = "table".AsMemory() };
4243

4344
// act
4445
var result = DataTableDetector.IsDataTable(node);

Html2Text.Tests/Html2Text.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net462;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net462;net8.0;net10.0</TargetFrameworks>
55
<LangVersion>12.0</LangVersion>
66
<Nullable>enable</Nullable>
77

Html2Text.Tests/LexerTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private static List<Chunk> CollectTestOutput(string input)
2929
{
3030
var results = new List<Chunk>();
3131

32-
foreach (Token token in new Lexer(input.AsSpan()))
32+
foreach (Token token in new Lexer(input.AsMemory()))
3333
{
3434
var content = token.TagName.IsEmpty
3535
? input.Substring(token.StartIndex, token.Length)
@@ -54,7 +54,7 @@ private static IEnumerable<string> DisplayTestOutput(List<Chunk> result)
5454
public void MoveNext_Returns_False_WhenInput_IsEmpty()
5555
{
5656
// arrange
57-
var unit = new Lexer(ReadOnlySpan<char>.Empty);
57+
var unit = new Lexer(ReadOnlyMemory<char>.Empty);
5858

5959
// act
6060
var result = unit.MoveNext();
@@ -68,7 +68,7 @@ public void MoveNext_Returns_True_WithCurrentTextContent_WhenInput_IsSingleChara
6868
{
6969
// arrange
7070
var input = "z";
71-
var unit = new Lexer(input.AsSpan());
71+
var unit = new Lexer(input.AsMemory());
7272

7373
// act
7474
var result = unit.MoveNext();
@@ -86,7 +86,7 @@ public void MoveNext_Returns_False_WhenInput_HasBeenConsumed()
8686
{
8787
// arrange
8888
var input = "hello";
89-
var unit = new Lexer(input.AsSpan());
89+
var unit = new Lexer(input.AsMemory());
9090

9191
// act first read
9292
var result = unit.MoveNext();
@@ -110,7 +110,7 @@ public void MoveNext_Returns_True_WithTextToken_WhenInput_IsOnlyText()
110110
{
111111
// arrange
112112
var input = "blorgfester";
113-
var unit = new Lexer(input.AsSpan());
113+
var unit = new Lexer(input.AsMemory());
114114

115115
// act
116116
var result = unit.MoveNext();
@@ -130,7 +130,7 @@ public void MoveNext_Returns_True_WithCurrentOpeningTagToken_WhenInput_IsOpening
130130
{
131131
// arrange
132132
var input = "<p>";
133-
var unit = new Lexer(input.AsSpan());
133+
var unit = new Lexer(input.AsMemory());
134134

135135
// act
136136
var result = unit.MoveNext();
@@ -148,7 +148,7 @@ public void MoveNext_Returns_True_WithCurrentClosingTag_WhenInput_IsClosingTag()
148148
// arrange
149149
var input = "</p>";
150150

151-
var unit = new Lexer(input.AsSpan());
151+
var unit = new Lexer(input.AsMemory());
152152

153153
// act
154154
var result = unit.MoveNext();
@@ -513,7 +513,7 @@ public void GetEnumerator_Returns_TextTokens_WhenInput_IsMalformedSelfClosingTag
513513
public void MoveNext_Returns_False_WhenInput_ContainsOnlyScriptElement()
514514
{
515515
// arrange
516-
var unit = new Lexer("<script>var a = 1 / 2; b = 3 < c >= 4;</script>".AsSpan());
516+
var unit = new Lexer("<script>var a = 1 / 2; b = 3 < c >= 4;</script>".AsMemory());
517517

518518
// act
519519
var result = unit.MoveNext();

0 commit comments

Comments
 (0)