@@ -38,13 +38,14 @@ internal abstract class PackedFieldAccessor
38
38
protected readonly long ValueBitMask ;
39
39
public readonly byte Index ;
40
40
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 )
42
42
{
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
+ }
48
49
}
49
50
50
51
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
64
65
65
66
public abstract object GetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , out TupleFieldState fieldState ) ;
66
67
67
- public abstract void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value ) ;
68
+ public abstract void SetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , object value ) ;
68
69
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 ) ;
71
72
72
73
public abstract bool ValueEquals ( PackedTuple left , in PackedFieldDescriptor leftDescriptor ,
73
74
PackedTuple right , in PackedFieldDescriptor rightDescriptor ) ;
@@ -108,17 +109,14 @@ public override object GetUntypedValue(PackedTuple tuple, in PackedFieldDescript
108
109
return state == TupleFieldState . Available ? tuple . Objects [ descriptor . ObjectIndex ] : null ;
109
110
}
110
111
111
- public override void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value )
112
+ public override void SetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , object value )
112
113
{
113
114
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 ) ) ;
118
116
}
119
117
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 )
122
120
{
123
121
target . Objects [ targetDescriptor . ObjectIndex ] = source . Objects [ sourceDescriptor . ObjectIndex ] ;
124
122
}
@@ -174,21 +172,21 @@ public override object GetUntypedValue(PackedTuple tuple, in PackedFieldDescript
174
172
return state == TupleFieldState . Available ? ( object ) Load ( tuple , descriptor ) : null ;
175
173
}
176
174
177
- public override void SetUntypedValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , object value )
175
+ public override void SetUntypedValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , object value )
178
176
{
179
177
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 ) ;
182
180
}
183
181
else {
184
- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
182
+ tuple . SetFieldState ( descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
185
183
}
186
184
}
187
185
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 )
190
188
{
191
- Store ( target , ref targetDescriptor , Load ( source , sourceDescriptor ) ) ;
189
+ Store ( target , targetDescriptor , Load ( source , sourceDescriptor ) ) ;
192
190
}
193
191
194
192
public override bool ValueEquals ( PackedTuple left , in PackedFieldDescriptor leftDescriptor ,
@@ -218,23 +216,23 @@ private T GetValue(PackedTuple tuple, in PackedFieldDescriptor descriptor, out T
218
216
return state == TupleFieldState . Available ? Load ( tuple , descriptor ) : NullValue ;
219
217
}
220
218
221
- private void SetValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , T value )
219
+ private void SetValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , T value )
222
220
{
223
- Store ( tuple , ref descriptor , value ) ;
224
- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available ) ;
221
+ Store ( tuple , descriptor , value ) ;
222
+ tuple . SetFieldState ( descriptor , TupleFieldState . Available ) ;
225
223
}
226
224
227
- private void SetNullableValue ( PackedTuple tuple , ref PackedFieldDescriptor descriptor , T ? value )
225
+ private void SetNullableValue ( PackedTuple tuple , in PackedFieldDescriptor descriptor , T ? value )
228
226
{
229
227
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 ) ;
232
230
}
233
231
else
234
- tuple . SetFieldState ( ref descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
232
+ tuple . SetFieldState ( descriptor , TupleFieldState . Available | TupleFieldState . Null ) ;
235
233
}
236
234
237
- private void Store ( PackedTuple tuple , ref PackedFieldDescriptor d , T value )
235
+ private void Store ( PackedTuple tuple , in PackedFieldDescriptor d , T value )
238
236
{
239
237
var valueIndex = d . ValueIndex ;
240
238
if ( Rank > 6 ) {
0 commit comments