Skip to content

Commit d6f015f

Browse files
committed
Back to lists to avoid boxing on ArraySegment cast to interface
1 parent e4867ca commit d6f015f

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

Orm/Xtensive.Orm/Orm/Model/IndexInfo.cs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -331,29 +331,26 @@ public override void UpdateState()
331331
}
332332

333333
var keyColumnsCount = keyColumns.Count;
334-
var system = new int[keyColumnsCount + 1];
334+
var system = new List<int>(keyColumnsCount + 1);
335335
var lazy = new List<int>();
336-
var regular = new int[Columns.Count - keyColumnsCount];
336+
var regular = new List<int>(Columns.Count - keyColumnsCount);
337337

338-
var regularIndex = 0;
339-
var systemIndex = 0;
340-
341-
for (var i = 0; i < Columns.Count; i++) {
338+
for (int i = 0, count = Columns.Count; i < count; i++) {
342339
var item = Columns[i];
343340
if (item.IsPrimaryKey || item.IsSystem) {
344-
system[systemIndex++] = i;
341+
system.Add(i);
345342
}
346343
else if (item.IsLazyLoad) {
347344
lazy.Add(i);
348345
}
349346
else {
350-
regular[regularIndex++] = i;
347+
regular.Add(i);
351348
}
352349
}
353350

354351
ColumnIndexMap = new ColumnIndexMap(
355-
(systemIndex == system.Length) ? system : new ArraySegment<int>(system, 0, systemIndex),
356-
(regularIndex == 0) ? Array.Empty<int>() : new ArraySegment<int>(regular, 0, regularIndex),
352+
system,
353+
(regular.Count == 0) ? Array.Empty<int>() : regular,
357354
(lazy.Count == 0) ? Array.Empty<int>() : lazy);
358355
}
359356

0 commit comments

Comments
 (0)