Skip to content

Commit f505c3f

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

File tree

5 files changed

+42
-42
lines changed

5 files changed

+42
-42
lines changed

Orm/Xtensive.Orm/Tuples/AccessorDelegates.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Xtensive.Tuples
1616
/// <param name="descriptor">Field descriptor.</param>
1717
/// <param name="fieldState">State of a field.</param>
1818
/// <returns></returns>
19-
internal delegate TValue GetValueDelegate<TValue>(PackedTuple tuple, ref PackedFieldDescriptor descriptor, out TupleFieldState fieldState);
19+
internal delegate TValue GetValueDelegate<TValue>(PackedTuple tuple, in PackedFieldDescriptor descriptor, out TupleFieldState fieldState);
2020

2121
/// <summary>
2222
/// Incapsulates <see cref="Tuple.SetValue{T}"/> method.

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

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

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ public override bool Equals(Tuple other)
4747
var count = Count;
4848
for (int i = 0; i < count; i++) {
4949
ref var descriptor = ref fieldDescriptors[i];
50-
var thisState = GetFieldState(ref descriptor);
51-
var otherState = packedOther.GetFieldState(ref descriptor);
50+
var thisState = GetFieldState(descriptor);
51+
var otherState = packedOther.GetFieldState(descriptor);
5252
if (thisState!=otherState)
5353
return false;
5454
if (thisState!=TupleFieldState.Available)
5555
continue;
5656
var accessor = descriptor.Accessor;
57-
if (!accessor.ValueEquals(this, ref descriptor, packedOther, ref descriptor))
57+
if (!accessor.ValueEquals(this, descriptor, packedOther, descriptor))
5858
return false;
5959
}
6060

@@ -68,9 +68,9 @@ public override int GetHashCode()
6868
int result = 0;
6969
for (int i = 0; i < count; i++) {
7070
ref var descriptor = ref fieldDescriptors[i];
71-
var state = GetFieldState(ref descriptor);
71+
var state = GetFieldState(descriptor);
7272
var fieldHash = state == TupleFieldState.Available
73-
? descriptor.Accessor.GetValueHashCode(this, ref descriptor)
73+
? descriptor.Accessor.GetValueHashCode(this, descriptor)
7474
: 0;
7575
result = HashCodeMultiplier * result ^ fieldHash;
7676
}
@@ -79,7 +79,7 @@ public override int GetHashCode()
7979

8080
public override TupleFieldState GetFieldState(int fieldIndex)
8181
{
82-
return GetFieldState(ref PackedDescriptor.FieldDescriptors[fieldIndex]);
82+
return GetFieldState(PackedDescriptor.FieldDescriptors[fieldIndex]);
8383
}
8484

8585
protected internal override void SetFieldState(int fieldIndex, TupleFieldState fieldState)
@@ -94,7 +94,7 @@ protected internal override void SetFieldState(int fieldIndex, TupleFieldState f
9494
public override object GetValue(int fieldIndex, out TupleFieldState fieldState)
9595
{
9696
ref var descriptor = ref PackedDescriptor.FieldDescriptors[fieldIndex];
97-
return descriptor.Accessor.GetUntypedValue(this, ref descriptor, out fieldState);
97+
return descriptor.Accessor.GetUntypedValue(this, descriptor, out fieldState);
9898
}
9999

100100
public override void SetValue(int fieldIndex, object fieldValue)
@@ -114,7 +114,7 @@ public void SetFieldState(ref PackedFieldDescriptor d, TupleFieldState fieldStat
114114
}
115115
}
116116

117-
public TupleFieldState GetFieldState(ref PackedFieldDescriptor d)
117+
public TupleFieldState GetFieldState(in PackedFieldDescriptor d)
118118
{
119119
var block = Values[d.StateIndex];
120120
return (TupleFieldState) ((block >> d.StateBitOffset) & 3);

Orm/Xtensive.Orm/Tuples/Tuple.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,13 @@ public T GetValue<T>(int fieldIndex, out TupleFieldState fieldState)
112112

113113
if (this is PackedTuple packedTuple) {
114114
ref var descriptor = ref packedTuple.PackedDescriptor.FieldDescriptors[fieldIndex];
115-
return descriptor.Accessor.GetValue<T>(packedTuple, ref descriptor, isNullable, out fieldState);
115+
return descriptor.Accessor.GetValue<T>(packedTuple, descriptor, isNullable, out fieldState);
116116
}
117117

118118
var mappedContainer = GetMappedContainer(fieldIndex, false);
119119
if (mappedContainer.First is PackedTuple mappedTuple) {
120120
ref var descriptor = ref mappedTuple.PackedDescriptor.FieldDescriptors[mappedContainer.Second];
121-
return descriptor.Accessor.GetValue<T>(mappedTuple, ref descriptor, isNullable, out fieldState);
121+
return descriptor.Accessor.GetValue<T>(mappedTuple, descriptor, isNullable, out fieldState);
122122
}
123123

124124
var value = GetValue(fieldIndex, out fieldState);

Orm/Xtensive.Orm/Tuples/TupleExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ private static void CopyPackedValue(PackedTuple source, int sourceIndex, PackedT
438438
ref var sourceDescriptor = ref source.PackedDescriptor.FieldDescriptors[sourceIndex];
439439
ref var targetDescriptor = ref target.PackedDescriptor.FieldDescriptors[targetIndex];
440440

441-
var fieldState = source.GetFieldState(ref sourceDescriptor);
441+
var fieldState = source.GetFieldState(sourceDescriptor);
442442
if (!fieldState.IsAvailable()) {
443443
return;
444444
}

0 commit comments

Comments
 (0)