1
0
mirror of https://github.com/chylex/Brotli-Builder.git synced 2025-03-15 02:15:46 +01:00

Make DistanceParameters a readonly struct

This commit is contained in:
chylex 2019-05-23 16:24:40 +02:00
parent 82f212a4b8
commit 6baa782fb9
4 changed files with 5 additions and 5 deletions

View File

@ -36,7 +36,7 @@ namespace BrotliLib.Brotli.Components.Data{
/// <para/>
/// Finally, the value is offset by (1 + direct code count), as all values below that can be represented using <see cref="DistanceCode.Direct"/> instead.
/// </summary>
public Complex(DistanceParameters parameters, int code) : base(code){
public Complex(in DistanceParameters parameters, int code) : base(code){
int directCodeCount = parameters.DirectCodeCount;
this.postfixBitCount = parameters.PostfixBitCount;

View File

@ -60,7 +60,7 @@ namespace BrotliLib.Brotli.Components.Data{
// Types
internal static IReadOnlyList<DistanceCode> ForValue(DistanceParameters parameters, BrotliGlobalState state, int value){
internal static IReadOnlyList<DistanceCode> ForValue(in DistanceParameters parameters, BrotliGlobalState state, int value){
List<DistanceCode> valid = new List<DistanceCode>();
valid.AddRange(Last.Codes.Where(code => code.CanEncodeValue(state, value)));
@ -82,7 +82,7 @@ namespace BrotliLib.Brotli.Components.Data{
return valid;
}
private static DistanceCode Create(DistanceParameters parameters, int code){
private static DistanceCode Create(in DistanceParameters parameters, int code){
if (code < Last.Codes.Length){
return Last.Codes[code];
}

View File

@ -8,7 +8,7 @@ namespace BrotliLib.Brotli.Components.Header{
/// Describes two parameters that modify the calculation of distances.
/// https://tools.ietf.org/html/rfc7932#section-4
/// </summary>
public sealed class DistanceParameters{
public readonly struct DistanceParameters{
public const int MaxPostfixBitCount = 3;
public const int MaxDirectCodeBits = 15;

View File

@ -63,7 +63,7 @@ namespace BrotliLib.Brotli.Components.Utils{
}
}
public static IReadOnlyList<DistanceCode> MakeCode(this DistanceInfo info, DistanceParameters parameters, BrotliGlobalState state){
public static IReadOnlyList<DistanceCode> MakeCode(this DistanceInfo info, in DistanceParameters parameters, BrotliGlobalState state){
switch(info){
case DistanceInfo.EndsAfterLiterals:
case DistanceInfo.ImplicitCodeZero: