Skip to content

Commit 33c1fc8

Browse files
committed
Fixed HUF_CTableHeader size depending on architecture
1 parent 5de65fd commit 33c1fc8

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

src/ZstdSharp/Unsafe/HufCompress.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,21 +130,19 @@ private static void HUF_setValue(nuint* elt, nuint value)
130130
private static HUF_CTableHeader HUF_readCTableHeader(nuint* ctable)
131131
{
132132
HUF_CTableHeader header;
133-
memcpy(&header, ctable, (uint)sizeof(HUF_CTableHeader));
133+
memcpy(&header, ctable, (uint)sizeof(nuint));
134134
return header;
135135
}
136136

137137
private static void HUF_writeCTableHeader(nuint* ctable, uint tableLog, uint maxSymbolValue)
138138
{
139139
HUF_CTableHeader header;
140-
header = new HUF_CTableHeader
141-
{
142-
tableLog = (byte)tableLog,
143-
maxSymbolValue = (byte)maxSymbolValue
144-
};
140+
memset(&header, 0, (uint)sizeof(nuint));
145141
assert(tableLog < 256);
142+
header.tableLog = (byte)tableLog;
146143
assert(maxSymbolValue < 256);
147-
memcpy(ctable, &header, (uint)sizeof(HUF_CTableHeader));
144+
header.maxSymbolValue = (byte)maxSymbolValue;
145+
memcpy(ctable, &header, (uint)sizeof(nuint));
148146
}
149147

150148
private static nuint HUF_writeCTable_wksp(void* dst, nuint maxDstSize, nuint* CTable, uint maxSymbolValue, uint huffLog, void* workspace, nuint workspaceSize)

0 commit comments

Comments
 (0)