@@ -47,32 +47,32 @@ public void SetValue<T>(PackedTuple tuple, ref PackedFieldDescriptor descriptor,
4747 SetUntypedValue ( tuple , ref descriptor , value ) ;
4848 }
4949
50- public T GetValue < T > ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , bool isNullable , out TupleFieldState fieldState )
50+ public T GetValue < T > ( PackedTuple tuple , in PackedFieldDescriptor descriptor , bool isNullable , out TupleFieldState fieldState )
5151 {
5252 var getter = ( isNullable ? NullableGetter : Getter ) as GetValueDelegate < T > ;
5353 if ( getter != null )
54- return getter . Invoke ( tuple , ref descriptor , out fieldState ) ;
54+ return getter . Invoke ( tuple , descriptor , out fieldState ) ;
5555 var targetType = typeof ( T ) ;
5656
5757 //Dirty hack of nullable enum reading
5858 if ( isNullable )
5959 targetType = Nullable . GetUnderlyingType ( targetType ) ?? targetType ;
6060 if ( targetType . IsEnum )
61- return ( T ) Enum . ToObject ( targetType , GetUntypedValue ( tuple , ref descriptor , out fieldState ) ) ;
62- return ( T ) GetUntypedValue ( tuple , ref descriptor , out fieldState ) ;
61+ return ( T ) Enum . ToObject ( targetType , GetUntypedValue ( tuple , descriptor , out fieldState ) ) ;
62+ return ( T ) GetUntypedValue ( tuple , descriptor , out fieldState ) ;
6363 }
6464
65- public abstract object GetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , out TupleFieldState fieldState ) ;
65+ public abstract object GetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , out TupleFieldState fieldState ) ;
6666
6767 public abstract void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value ) ;
6868
6969 public abstract void CopyValue ( PackedTuple source , ref PackedFieldDescriptor sourceDescriptor ,
7070 PackedTuple target , ref PackedFieldDescriptor targetDescriptor ) ;
7171
72- public abstract bool ValueEquals ( PackedTuple left , ref PackedFieldDescriptor leftDescriptor ,
73- PackedTuple right , ref PackedFieldDescriptor rightDescriptor ) ;
72+ public abstract bool ValueEquals ( PackedTuple left , in PackedFieldDescriptor leftDescriptor ,
73+ PackedTuple right , in PackedFieldDescriptor rightDescriptor ) ;
7474
75- public abstract int GetValueHashCode ( PackedTuple tuple , ref PackedFieldDescriptor descriptor ) ;
75+ public abstract int GetValueHashCode ( PackedTuple tuple , in PackedFieldDescriptor descriptor ) ;
7676
7777 protected PackedFieldAccessor ( int rank , byte index )
7878 {
@@ -101,9 +101,9 @@ protected PackedFieldAccessor(int rank, byte index)
101101
102102 internal sealed class ObjectFieldAccessor : PackedFieldAccessor
103103 {
104- public override object GetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
104+ public override object GetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
105105 {
106- var state = tuple . GetFieldState ( ref descriptor ) ;
106+ var state = tuple . GetFieldState ( descriptor ) ;
107107 fieldState = state ;
108108 return state == TupleFieldState . Available ? tuple . Objects [ descriptor . ObjectIndex ] : null ;
109109 }
@@ -123,15 +123,15 @@ public override void CopyValue(PackedTuple source, ref PackedFieldDescriptor sou
123123 target . Objects [ targetDescriptor . ObjectIndex ] = source . Objects [ sourceDescriptor . ObjectIndex ] ;
124124 }
125125
126- public override bool ValueEquals ( PackedTuple left , ref PackedFieldDescriptor leftDescriptor ,
127- PackedTuple right , ref PackedFieldDescriptor rightDescriptor )
126+ public override bool ValueEquals ( PackedTuple left , in PackedFieldDescriptor leftDescriptor ,
127+ PackedTuple right , in PackedFieldDescriptor rightDescriptor )
128128 {
129129 var leftValue = left . Objects [ leftDescriptor . ObjectIndex ] ;
130130 var rightValue = right . Objects [ rightDescriptor . ObjectIndex ] ;
131131 return leftValue . Equals ( rightValue ) ;
132132 }
133133
134- public override int GetValueHashCode ( PackedTuple tuple , ref PackedFieldDescriptor descriptor )
134+ public override int GetValueHashCode ( PackedTuple tuple , in PackedFieldDescriptor descriptor )
135135 {
136136 return tuple . Objects [ descriptor . ObjectIndex ] . GetHashCode ( ) ;
137137 }
@@ -167,11 +167,11 @@ internal abstract class ValueFieldAccessor<T> : ValueFieldAccessor
167167
168168 protected virtual T Decode ( long [ ] values , int offset ) => throw new NotSupportedException ( ) ;
169169
170- public override object GetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
170+ public override object GetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
171171 {
172- var state = tuple . GetFieldState ( ref descriptor ) ;
172+ var state = tuple . GetFieldState ( descriptor ) ;
173173 fieldState = state ;
174- return state == TupleFieldState . Available ? ( object ) Load ( tuple , ref descriptor ) : null ;
174+ return state == TupleFieldState . Available ? ( object ) Load ( tuple , descriptor ) : null ;
175175 }
176176
177177 public override void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value )
@@ -188,34 +188,34 @@ public override void SetUntypedValue(PackedTuple tuple, ref PackedFieldDescripto
188188 public override void CopyValue ( PackedTuple source , ref PackedFieldDescriptor sourceDescriptor ,
189189 PackedTuple target , ref PackedFieldDescriptor targetDescriptor )
190190 {
191- Store ( target , ref targetDescriptor , Load ( source , ref sourceDescriptor ) ) ;
191+ Store ( target , ref targetDescriptor , Load ( source , sourceDescriptor ) ) ;
192192 }
193193
194- public override bool ValueEquals ( PackedTuple left , ref PackedFieldDescriptor leftDescriptor ,
195- PackedTuple right , ref PackedFieldDescriptor rightDescriptor )
194+ public override bool ValueEquals ( PackedTuple left , in PackedFieldDescriptor leftDescriptor ,
195+ PackedTuple right , in PackedFieldDescriptor rightDescriptor )
196196 {
197- var leftValue = Load ( left , ref leftDescriptor ) ;
198- var rightValue = Load ( right , ref rightDescriptor ) ;
197+ var leftValue = Load ( left , leftDescriptor ) ;
198+ var rightValue = Load ( right , rightDescriptor ) ;
199199 return leftValue . Equals ( rightValue ) ;
200200 }
201201
202- public override int GetValueHashCode ( PackedTuple tuple , ref PackedFieldDescriptor descriptor )
202+ public override int GetValueHashCode ( PackedTuple tuple , in PackedFieldDescriptor descriptor )
203203 {
204- return Load ( tuple , ref descriptor ) . GetHashCode ( ) ;
204+ return Load ( tuple , descriptor ) . GetHashCode ( ) ;
205205 }
206206
207- private T GetValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
207+ private T GetValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
208208 {
209- var state = tuple . GetFieldState ( ref descriptor ) ;
209+ var state = tuple . GetFieldState ( descriptor ) ;
210210 fieldState = state ;
211- return state == TupleFieldState . Available ? Load ( tuple , ref descriptor ) : DefaultValue ;
211+ return state == TupleFieldState . Available ? Load ( tuple , descriptor ) : DefaultValue ;
212212 }
213213
214- private T ? GetNullableValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
214+ private T ? GetNullableValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , out TupleFieldState fieldState )
215215 {
216- var state = tuple . GetFieldState ( ref descriptor ) ;
216+ var state = tuple . GetFieldState ( descriptor ) ;
217217 fieldState = state ;
218- return state == TupleFieldState . Available ? Load ( tuple , ref descriptor ) : NullValue ;
218+ return state == TupleFieldState . Available ? Load ( tuple , descriptor ) : NullValue ;
219219 }
220220
221221 private void SetValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , T value )
@@ -249,7 +249,7 @@ private void Store(PackedTuple tuple, ref PackedFieldDescriptor d, T value)
249249 block = ( block & ~ mask ) | ( ( encoded << valueBitOffset ) & mask ) ;
250250 }
251251
252- private T Load ( PackedTuple tuple , ref PackedFieldDescriptor d )
252+ private T Load ( PackedTuple tuple , in PackedFieldDescriptor d )
253253 {
254254 var valueIndex = d . ValueIndex ;
255255 if ( Rank > 6 ) {
0 commit comments