@@ -38,13 +38,14 @@ internal abstract class PackedFieldAccessor
3838 protected readonly long ValueBitMask ;
3939 public readonly byte Index ;
4040
41- public void SetValue < T > ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , bool isNullable , T value )
41+ public void SetValue < T > ( PackedTuple tuple , in PackedFieldDescriptor descriptor , bool isNullable , T value )
4242 {
43- var setter = ( isNullable ? NullableSetter : Setter ) as SetValueDelegate < T > ;
44- if ( setter != null )
45- setter . Invoke ( tuple , ref descriptor , value ) ;
46- else
47- SetUntypedValue ( tuple , ref descriptor , value ) ;
43+ if ( ( isNullable ? NullableSetter : Setter ) is SetValueDelegate < T > setter ) {
44+ setter . Invoke ( tuple , descriptor , value ) ;
45+ }
46+ else {
47+ SetUntypedValue ( tuple , descriptor , value ) ;
48+ }
4849 }
4950
5051 public T GetValue < T > ( PackedTuple tuple , in PackedFieldDescriptor descriptor , bool isNullable , out TupleFieldState fieldState )
@@ -64,10 +65,10 @@ public T GetValue<T>(PackedTuple tuple, in PackedFieldDescriptor descriptor, boo
6465
6566 public abstract object GetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , out TupleFieldState fieldState ) ;
6667
67- public abstract void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value ) ;
68+ public abstract void SetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , object value ) ;
6869
69- public abstract void CopyValue ( PackedTuple source , ref PackedFieldDescriptor sourceDescriptor ,
70- PackedTuple target , ref PackedFieldDescriptor targetDescriptor ) ;
70+ public abstract void CopyValue ( PackedTuple source , in PackedFieldDescriptor sourceDescriptor ,
71+ PackedTuple target , in PackedFieldDescriptor targetDescriptor ) ;
7172
7273 public abstract bool ValueEquals ( PackedTuple left , in PackedFieldDescriptor leftDescriptor ,
7374 PackedTuple right , in PackedFieldDescriptor rightDescriptor ) ;
@@ -108,17 +109,14 @@ public override object GetUntypedValue(PackedTuple tuple, in PackedFieldDescript
108109 return state == TupleFieldState . Available ? tuple . Objects [ descriptor . ObjectIndex ] : null ;
109110 }
110111
111- public override void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value )
112+ public override void SetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , object value )
112113 {
113114 tuple . Objects [ descriptor . ObjectIndex ] = value ;
114- if ( value != null )
115- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available ) ;
116- else
117- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
115+ tuple . SetFieldState ( descriptor , value != null ? TupleFieldState . Available : ( TupleFieldState . Available | TupleFieldState . Null ) ) ;
118116 }
119117
120- public override void CopyValue ( PackedTuple source , ref PackedFieldDescriptor sourceDescriptor ,
121- PackedTuple target , ref PackedFieldDescriptor targetDescriptor )
118+ public override void CopyValue ( PackedTuple source , in PackedFieldDescriptor sourceDescriptor ,
119+ PackedTuple target , in PackedFieldDescriptor targetDescriptor )
122120 {
123121 target . Objects [ targetDescriptor . ObjectIndex ] = source . Objects [ sourceDescriptor . ObjectIndex ] ;
124122 }
@@ -174,21 +172,21 @@ public override object GetUntypedValue(PackedTuple tuple, in PackedFieldDescript
174172 return state == TupleFieldState . Available ? ( object ) Load ( tuple , descriptor ) : null ;
175173 }
176174
177- public override void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value )
175+ public override void SetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , object value )
178176 {
179177 if ( value != null ) {
180- Store ( tuple , ref descriptor , ( T ) value ) ;
181- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available ) ;
178+ Store ( tuple , descriptor , ( T ) value ) ;
179+ tuple . SetFieldState ( descriptor , TupleFieldState . Available ) ;
182180 }
183181 else {
184- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
182+ tuple . SetFieldState ( descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
185183 }
186184 }
187185
188- public override void CopyValue ( PackedTuple source , ref PackedFieldDescriptor sourceDescriptor ,
189- PackedTuple target , ref PackedFieldDescriptor targetDescriptor )
186+ public override void CopyValue ( PackedTuple source , in PackedFieldDescriptor sourceDescriptor ,
187+ PackedTuple target , in PackedFieldDescriptor targetDescriptor )
190188 {
191- Store ( target , ref targetDescriptor , Load ( source , sourceDescriptor ) ) ;
189+ Store ( target , targetDescriptor , Load ( source , sourceDescriptor ) ) ;
192190 }
193191
194192 public override bool ValueEquals ( PackedTuple left , in PackedFieldDescriptor leftDescriptor ,
@@ -218,23 +216,23 @@ private T GetValue(PackedTuple tuple, in PackedFieldDescriptor descriptor, out T
218216 return state == TupleFieldState . Available ? Load ( tuple , descriptor ) : NullValue ;
219217 }
220218
221- private void SetValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , T value )
219+ private void SetValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , T value )
222220 {
223- Store ( tuple , ref descriptor , value ) ;
224- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available ) ;
221+ Store ( tuple , descriptor , value ) ;
222+ tuple . SetFieldState ( descriptor , TupleFieldState . Available ) ;
225223 }
226224
227- private void SetNullableValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , T ? value )
225+ private void SetNullableValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , T ? value )
228226 {
229227 if ( value != null ) {
230- Store ( tuple , ref descriptor , value . Value ) ;
231- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available ) ;
228+ Store ( tuple , descriptor , value . Value ) ;
229+ tuple . SetFieldState ( descriptor , TupleFieldState . Available ) ;
232230 }
233231 else
234- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
232+ tuple . SetFieldState ( descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
235233 }
236234
237- private void Store ( PackedTuple tuple , ref PackedFieldDescriptor d , T value )
235+ private void Store ( PackedTuple tuple , in PackedFieldDescriptor d , T value )
238236 {
239237 var valueIndex = d . ValueIndex ;
240238 if ( Rank > 6 ) {
0 commit comments