Skip to content

Commit 679a7b0

Browse files
committed
.NET 8: InlineArray for fixed buffers
1 parent d1e2f53 commit 679a7b0

6 files changed

+111
-0
lines changed

src/ZstdSharp/Unsafe/HUF_ReadDTableX2_Workspace.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.Runtime.CompilerServices;
2+
13
namespace ZstdSharp.Unsafe
24
{
35
public unsafe struct HUF_ReadDTableX2_Workspace
@@ -8,6 +10,14 @@ public unsafe struct HUF_ReadDTableX2_Workspace
810
public _sortedSymbol_e__FixedBuffer sortedSymbol;
911
public fixed byte weightList[256];
1012
public fixed uint calleeWksp[219];
13+
#if NET8_0_OR_GREATER
14+
[InlineArray(12)]
15+
public unsafe struct _rankVal_e__FixedBuffer
16+
{
17+
public rankValCol_t e0;
18+
}
19+
20+
#else
1121
public unsafe struct _rankVal_e__FixedBuffer
1222
{
1323
public rankValCol_t e0;
@@ -23,7 +33,16 @@ public unsafe struct _rankVal_e__FixedBuffer
2333
public rankValCol_t e10;
2434
public rankValCol_t e11;
2535
}
36+
#endif
37+
38+
#if NET8_0_OR_GREATER
39+
[InlineArray(256)]
40+
public unsafe struct _sortedSymbol_e__FixedBuffer
41+
{
42+
public sortedSymbol_t e0;
43+
}
2644

45+
#else
2746
public unsafe struct _sortedSymbol_e__FixedBuffer
2847
{
2948
public sortedSymbol_t e0;
@@ -283,5 +302,6 @@ public unsafe struct _sortedSymbol_e__FixedBuffer
283302
public sortedSymbol_t e254;
284303
public sortedSymbol_t e255;
285304
}
305+
#endif
286306
}
287307
}

src/ZstdSharp/Unsafe/HUF_buildCTable_wksp_tables.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
1+
using System.Runtime.CompilerServices;
2+
13
namespace ZstdSharp.Unsafe
24
{
35
public struct HUF_buildCTable_wksp_tables
46
{
57
public _huffNodeTbl_e__FixedBuffer huffNodeTbl;
68
public _rankPosition_e__FixedBuffer rankPosition;
9+
#if NET8_0_OR_GREATER
10+
[InlineArray(512)]
11+
public unsafe struct _huffNodeTbl_e__FixedBuffer
12+
{
13+
public nodeElt_s e0;
14+
}
15+
16+
#else
717
public unsafe struct _huffNodeTbl_e__FixedBuffer
818
{
919
public nodeElt_s e0;
@@ -519,7 +529,16 @@ public unsafe struct _huffNodeTbl_e__FixedBuffer
519529
public nodeElt_s e510;
520530
public nodeElt_s e511;
521531
}
532+
#endif
533+
534+
#if NET8_0_OR_GREATER
535+
[InlineArray(192)]
536+
public unsafe struct _rankPosition_e__FixedBuffer
537+
{
538+
public rankPos e0;
539+
}
522540

541+
#else
523542
public unsafe struct _rankPosition_e__FixedBuffer
524543
{
525544
public rankPos e0;
@@ -715,5 +734,6 @@ public unsafe struct _rankPosition_e__FixedBuffer
715734
public rankPos e190;
716735
public rankPos e191;
717736
}
737+
#endif
718738
}
719739
}

src/ZstdSharp/Unsafe/HUF_compress_tables_t.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1+
using System.Runtime.CompilerServices;
2+
13
namespace ZstdSharp.Unsafe
24
{
35
public unsafe struct HUF_compress_tables_t
46
{
57
public fixed uint count[256];
68
public _CTable_e__FixedBuffer CTable;
79
public _wksps_e__Union wksps;
10+
#if NET8_0_OR_GREATER
11+
[InlineArray(257)]
12+
public unsafe struct _CTable_e__FixedBuffer
13+
{
14+
public nuint e0;
15+
}
16+
17+
#else
818
public unsafe struct _CTable_e__FixedBuffer
919
{
1020
public nuint e0;
@@ -265,5 +275,6 @@ public unsafe struct _CTable_e__FixedBuffer
265275
public nuint e255;
266276
public nuint e256;
267277
}
278+
#endif
268279
}
269280
}

src/ZstdSharp/Unsafe/ZSTD_entropyDTables_t.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.Runtime.CompilerServices;
2+
13
namespace ZstdSharp.Unsafe
24
{
35
public unsafe struct ZSTD_entropyDTables_t
@@ -12,6 +14,14 @@ public unsafe struct ZSTD_entropyDTables_t
1214
public fixed uint hufTable[4097];
1315
public fixed uint rep[3];
1416
public fixed uint workspace[157];
17+
#if NET8_0_OR_GREATER
18+
[InlineArray(513)]
19+
public unsafe struct _LLTable_e__FixedBuffer
20+
{
21+
public ZSTD_seqSymbol e0;
22+
}
23+
24+
#else
1525
public unsafe struct _LLTable_e__FixedBuffer
1626
{
1727
public ZSTD_seqSymbol e0;
@@ -528,7 +538,16 @@ public unsafe struct _LLTable_e__FixedBuffer
528538
public ZSTD_seqSymbol e511;
529539
public ZSTD_seqSymbol e512;
530540
}
541+
#endif
542+
543+
#if NET8_0_OR_GREATER
544+
[InlineArray(257)]
545+
public unsafe struct _OFTable_e__FixedBuffer
546+
{
547+
public ZSTD_seqSymbol e0;
548+
}
531549

550+
#else
532551
public unsafe struct _OFTable_e__FixedBuffer
533552
{
534553
public ZSTD_seqSymbol e0;
@@ -789,7 +808,16 @@ public unsafe struct _OFTable_e__FixedBuffer
789808
public ZSTD_seqSymbol e255;
790809
public ZSTD_seqSymbol e256;
791810
}
811+
#endif
812+
813+
#if NET8_0_OR_GREATER
814+
[InlineArray(513)]
815+
public unsafe struct _MLTable_e__FixedBuffer
816+
{
817+
public ZSTD_seqSymbol e0;
818+
}
792819

820+
#else
793821
public unsafe struct _MLTable_e__FixedBuffer
794822
{
795823
public ZSTD_seqSymbol e0;
@@ -1306,5 +1334,6 @@ public unsafe struct _MLTable_e__FixedBuffer
13061334
public ZSTD_seqSymbol e511;
13071335
public ZSTD_seqSymbol e512;
13081336
}
1337+
#endif
13091338
}
13101339
}

src/ZstdSharp/Unsafe/ZSTD_hufCTables_t.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
1+
using System.Runtime.CompilerServices;
2+
13
namespace ZstdSharp.Unsafe
24
{
35
public unsafe struct ZSTD_hufCTables_t
46
{
57
public _CTable_e__FixedBuffer CTable;
68
public HUF_repeat repeatMode;
9+
#if NET8_0_OR_GREATER
10+
[InlineArray(257)]
11+
public unsafe struct _CTable_e__FixedBuffer
12+
{
13+
public nuint e0;
14+
}
15+
16+
#else
717
public unsafe struct _CTable_e__FixedBuffer
818
{
919
public nuint e0;
@@ -264,5 +274,6 @@ public unsafe struct _CTable_e__FixedBuffer
264274
public nuint e255;
265275
public nuint e256;
266276
}
277+
#endif
267278
}
268279
}

src/ZstdSharp/Unsafe/ldmState_t.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.Runtime.CompilerServices;
2+
13
namespace ZstdSharp.Unsafe
24
{
35
public unsafe struct ldmState_t
@@ -10,6 +12,14 @@ public unsafe struct ldmState_t
1012
public byte* bucketOffsets;
1113
public _splitIndices_e__FixedBuffer splitIndices;
1214
public _matchCandidates_e__FixedBuffer matchCandidates;
15+
#if NET8_0_OR_GREATER
16+
[InlineArray(64)]
17+
public unsafe struct _splitIndices_e__FixedBuffer
18+
{
19+
public nuint e0;
20+
}
21+
22+
#else
1323
public unsafe struct _splitIndices_e__FixedBuffer
1424
{
1525
public nuint e0;
@@ -77,7 +87,16 @@ public unsafe struct _splitIndices_e__FixedBuffer
7787
public nuint e62;
7888
public nuint e63;
7989
}
90+
#endif
91+
92+
#if NET8_0_OR_GREATER
93+
[InlineArray(64)]
94+
public unsafe struct _matchCandidates_e__FixedBuffer
95+
{
96+
public ldmMatchCandidate_t e0;
97+
}
8098

99+
#else
81100
public unsafe struct _matchCandidates_e__FixedBuffer
82101
{
83102
public ldmMatchCandidate_t e0;
@@ -145,5 +164,6 @@ public unsafe struct _matchCandidates_e__FixedBuffer
145164
public ldmMatchCandidate_t e62;
146165
public ldmMatchCandidate_t e63;
147166
}
167+
#endif
148168
}
149169
}

0 commit comments

Comments
 (0)