mirror of
https://github.com/Dongyifengs/AssetStudio-Genshin-MoYi.git
synced 2025-04-22 04:29:18 +08:00
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
/* Copyright 2017 Google Inc. All Rights Reserved.
|
|
|
|
Distributed under MIT license.
|
|
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
*/
|
|
namespace Org.Brotli.Dec
|
|
{
|
|
/// <summary>Byte-to-int conversion magic.</summary>
|
|
internal sealed class IntReader
|
|
{
|
|
private byte[] byteBuffer;
|
|
|
|
private int[] intBuffer;
|
|
|
|
internal static void Init(Org.Brotli.Dec.IntReader ir, byte[] byteBuffer, int[] intBuffer)
|
|
{
|
|
ir.byteBuffer = byteBuffer;
|
|
ir.intBuffer = intBuffer;
|
|
}
|
|
|
|
/// <summary>Translates bytes to ints.</summary>
|
|
/// <remarks>
|
|
/// Translates bytes to ints.
|
|
/// NB: intLen == 4 * byteSize!
|
|
/// NB: intLen should be less or equal to intBuffer length.
|
|
/// </remarks>
|
|
internal static void Convert(Org.Brotli.Dec.IntReader ir, int intLen)
|
|
{
|
|
for (int i = 0; i < intLen; ++i)
|
|
{
|
|
ir.intBuffer[i] = ((ir.byteBuffer[i * 4] & unchecked((int)(0xFF)))) | ((ir.byteBuffer[(i * 4) + 1] & unchecked((int)(0xFF))) << 8) | ((ir.byteBuffer[(i * 4) + 2] & unchecked((int)(0xFF))) << 16) | ((ir.byteBuffer[(i * 4) + 3] & unchecked((int
|
|
)(0xFF))) << 24);
|
|
}
|
|
}
|
|
}
|
|
}
|