Skip to content

Commit cc1628f

Browse files
committed
Use 'in' instead of 'ref' where possible
1 parent f505c3f commit cc1628f

File tree

5 files changed

+36
-38
lines changed

5 files changed

+36
-38
lines changed

Orm/Xtensive.Orm/Tuples/AccessorDelegates.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,5 @@ namespace Xtensive.Tuples
2525
/// <param name="tuple">Tuple to use.</param>
2626
/// <param name="descriptor">Field descriptor.</param>
2727
/// <param name="value">A value.</param>
28-
internal delegate void SetValueDelegate<TValue>(PackedTuple tuple, ref PackedFieldDescriptor descriptor, TValue value);
28+
internal delegate void SetValueDelegate<TValue>(PackedTuple tuple, in PackedFieldDescriptor descriptor, TValue value);
2929
}

Orm/Xtensive.Orm/Tuples/Packed/PackedFieldAccessor.cs

Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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) {

Orm/Xtensive.Orm/Tuples/Packed/PackedTuple.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ protected internal override void SetFieldState(int fieldIndex, TupleFieldState f
8888
throw new ArgumentOutOfRangeException(nameof(fieldState));
8989
}
9090

91-
SetFieldState(ref PackedDescriptor.FieldDescriptors[fieldIndex], fieldState);
91+
SetFieldState(PackedDescriptor.FieldDescriptors[fieldIndex], fieldState);
9292
}
9393

9494
public override object GetValue(int fieldIndex, out TupleFieldState fieldState)
@@ -100,10 +100,10 @@ public override object GetValue(int fieldIndex, out TupleFieldState fieldState)
100100
public override void SetValue(int fieldIndex, object fieldValue)
101101
{
102102
ref var descriptor = ref PackedDescriptor.FieldDescriptors[fieldIndex];
103-
descriptor.Accessor.SetUntypedValue(this, ref descriptor, fieldValue);
103+
descriptor.Accessor.SetUntypedValue(this, descriptor, fieldValue);
104104
}
105105

106-
public void SetFieldState(ref PackedFieldDescriptor d, TupleFieldState fieldState)
106+
public void SetFieldState(in PackedFieldDescriptor d, TupleFieldState fieldState)
107107
{
108108
var bits = (long) fieldState;
109109
ref var block = ref Values[d.StateIndex];

Orm/Xtensive.Orm/Tuples/Tuple.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,14 @@ public void SetValue<T>(int fieldIndex, T fieldValue)
187187

188188
if (this is PackedTuple packedTuple) {
189189
ref var descriptor = ref packedTuple.PackedDescriptor.FieldDescriptors[fieldIndex];
190-
descriptor.Accessor.SetValue(packedTuple, ref descriptor, isNullable, fieldValue);
190+
descriptor.Accessor.SetValue(packedTuple, descriptor, isNullable, fieldValue);
191191
return;
192192
}
193193

194194
var mappedContainer = GetMappedContainer(fieldIndex, true);
195195
if (mappedContainer.First is PackedTuple mappedTuple) {
196196
ref var descriptor = ref mappedTuple.PackedDescriptor.FieldDescriptors[mappedContainer.Second];
197-
descriptor.Accessor.SetValue(mappedTuple, ref descriptor, isNullable, fieldValue);
197+
descriptor.Accessor.SetValue(mappedTuple, descriptor, isNullable, fieldValue);
198198
return;
199199
}
200200

Orm/Xtensive.Orm/Tuples/TupleExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ private static void CopyPackedValue(PackedTuple source, int sourceIndex, PackedT
457457
}
458458

459459
target.SetFieldState(targetIndex, TupleFieldState.Available);
460-
accessor.CopyValue(source, ref sourceDescriptor, target, ref targetDescriptor);
460+
accessor.CopyValue(source, sourceDescriptor, target, targetDescriptor);
461461
}
462462

463463
private static void PartiallyCopyTupleSlow(Tuple source, Tuple target, int sourceStartIndex, int targetStartIndex, int length)

0 commit comments

Comments
 (0)