Skip to content

Commit 9575f61

Browse files
committed
Replace array concatenation with hand written append
1 parent e0fe87b commit 9575f61

15 files changed

+74
-60
lines changed

src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Reflection;
55
using NHibernate.Cfg.MappingSchema;
66
using NHibernate.Persister.Entity;
7+
using NHibernate.Util;
78

89
namespace NHibernate.Mapping.ByCode.Impl
910
{
@@ -24,7 +25,6 @@ public ClassMapper(System.Type rootClass, HbmMapping mapDoc, MemberInfo idProper
2425
: base(rootClass, mapDoc)
2526
{
2627
classMapping = new HbmClass();
27-
var toAdd = new[] {classMapping};
2828
classMapping.name = rootClass.GetShortClassName(mapDoc);
2929
if (rootClass.IsAbstract)
3030
{
@@ -36,7 +36,7 @@ public ClassMapper(System.Type rootClass, HbmMapping mapDoc, MemberInfo idProper
3636
classMapping.Item = hbmId;
3737
idMapper = new IdMapper(idProperty, hbmId);
3838

39-
mapDoc.Items = mapDoc.Items == null ? toAdd : mapDoc.Items.Concat(toAdd).ToArray();
39+
mapDoc.Items = ArrayHelper.Append(mapDoc.Items, classMapping);
4040
}
4141

4242
#region Overrides of AbstractPropertyContainerMapper
@@ -47,8 +47,7 @@ protected override void AddProperty(object property)
4747
{
4848
throw new ArgumentNullException("property");
4949
}
50-
var toAdd = new[] {property};
51-
classMapping.Items = classMapping.Items == null ? toAdd : classMapping.Items.Concat(toAdd).ToArray();
50+
classMapping.Items = ArrayHelper.Append(classMapping.Items, property);
5251
}
5352

5453
#endregion
@@ -258,9 +257,8 @@ public void Join(string splitGroupId, Action<IJoinMapper> splitMapping)
258257
{
259258
var hbmJoin = new HbmJoin();
260259
splitGroup = new JoinMapper(Container, splitGroupId, hbmJoin, MapDoc);
261-
var toAdd = new[] { hbmJoin };
262260
JoinMappers.Add(splitGroupId, splitGroup);
263-
classMapping.Items1 = classMapping.Items1 == null ? toAdd : classMapping.Items1.Concat(toAdd).ToArray();
261+
classMapping.Items1 = ArrayHelper.Append(classMapping.Items1, hbmJoin);
264262
}
265263

266264
splitMapping(splitGroup);
@@ -391,4 +389,4 @@ public void Subselect(string sql)
391389

392390
#endregion
393391
}
394-
}
392+
}

src/NHibernate/Mapping/ByCode/Impl/ComponentAsIdMapper.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
2-
using System.Linq;
32
using System.Reflection;
43
using NHibernate.Cfg.MappingSchema;
4+
using NHibernate.Util;
55

66
namespace NHibernate.Mapping.ByCode.Impl
77
{
@@ -65,8 +65,7 @@ protected void AddProperty(object property)
6565
{
6666
throw new ArgumentNullException("property");
6767
}
68-
var toAdd = new[] { property };
69-
id.Items = id.Items == null ? toAdd : id.Items.Concat(toAdd).ToArray();
68+
id.Items = ArrayHelper.Append(id.Items, property);
7069
}
7170
}
72-
}
71+
}

src/NHibernate/Mapping/ByCode/Impl/ComponentElementMapper.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
2-
using System.Linq;
32
using System.Reflection;
43
using NHibernate.Cfg.MappingSchema;
4+
using NHibernate.Util;
55

66
namespace NHibernate.Mapping.ByCode.Impl
77
{
@@ -110,8 +110,7 @@ protected void AddProperty(object property)
110110
{
111111
throw new ArgumentNullException("property");
112112
}
113-
var toAdd = new[] { property };
114-
_component.Items = _component.Items == null ? toAdd : _component.Items.Concat(toAdd).ToArray();
113+
_component.Items = ArrayHelper.Append(_component.Items, property);
115114
}
116115

117116
private IComponentParentMapper GetParentMapper(MemberInfo parent)
@@ -124,4 +123,4 @@ private IComponentParentMapper GetParentMapper(MemberInfo parent)
124123
return _parentMapper = new ComponentParentMapper(_component.parent, parent);
125124
}
126125
}
127-
}
126+
}

src/NHibernate/Mapping/ByCode/Impl/ComponentMapKeyMapper.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
2-
using System.Linq;
32
using System.Reflection;
43
using NHibernate.Cfg.MappingSchema;
4+
using NHibernate.Util;
55

66
namespace NHibernate.Mapping.ByCode.Impl
77
{
@@ -46,8 +46,7 @@ protected void AddProperty(object property)
4646
{
4747
throw new ArgumentNullException("property");
4848
}
49-
var toAdd = new[] {property};
50-
component.Items = component.Items == null ? toAdd : component.Items.Concat(toAdd).ToArray();
49+
component.Items = ArrayHelper.Append(component.Items, property);
5150
}
5251
}
53-
}
52+
}

src/NHibernate/Mapping/ByCode/Impl/ComponentMapper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Linq;
33
using System.Reflection;
44
using NHibernate.Cfg.MappingSchema;
5+
using NHibernate.Util;
56

67
namespace NHibernate.Mapping.ByCode.Impl
78
{
@@ -32,8 +33,7 @@ protected override void AddProperty(object property)
3233
{
3334
throw new ArgumentNullException("property");
3435
}
35-
var toAdd = new[] {property};
36-
_component.Items = _component.Items == null ? toAdd : _component.Items.Concat(toAdd).ToArray();
36+
_component.Items = ArrayHelper.Append(_component.Items, property);
3737
}
3838

3939
#endregion

src/NHibernate/Mapping/ByCode/Impl/ComponentNestedElementMapper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Linq;
33
using System.Reflection;
44
using NHibernate.Cfg.MappingSchema;
5+
using NHibernate.Util;
56

67
namespace NHibernate.Mapping.ByCode.Impl
78
{
@@ -112,8 +113,7 @@ protected void AddProperty(object property)
112113
{
113114
throw new ArgumentNullException("property");
114115
}
115-
var toAdd = new[] { property };
116-
_component.Items = _component.Items == null ? toAdd : _component.Items.Concat(toAdd).ToArray();
116+
_component.Items = ArrayHelper.Append(_component.Items, property);
117117
}
118118

119119
private IComponentParentMapper GetParentMapper(MemberInfo parent)
@@ -126,4 +126,4 @@ private IComponentParentMapper GetParentMapper(MemberInfo parent)
126126
return _parentMapper = new ComponentParentMapper(_component.parent, parent);
127127
}
128128
}
129-
}
129+
}

src/NHibernate/Mapping/ByCode/Impl/ComposedIdMapper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Linq;
33
using System.Reflection;
44
using NHibernate.Cfg.MappingSchema;
5+
using NHibernate.Util;
56

67
namespace NHibernate.Mapping.ByCode.Impl
78
{
@@ -47,8 +48,7 @@ protected void AddProperty(object property)
4748
{
4849
throw new ArgumentNullException("property");
4950
}
50-
var toAdd = new[] {property};
51-
id.Items = id.Items == null ? toAdd : id.Items.Concat(toAdd).ToArray();
51+
id.Items = ArrayHelper.Append(id.Items, property);
5252
}
5353
}
54-
}
54+
}

src/NHibernate/Mapping/ByCode/Impl/DynamicComponentMapper.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Linq;
33
using System.Reflection;
44
using NHibernate.Cfg.MappingSchema;
5+
using NHibernate.Util;
56

67
namespace NHibernate.Mapping.ByCode.Impl
78
{
@@ -35,8 +36,8 @@ protected void AddProperty(object property)
3536
{
3637
throw new ArgumentNullException("property");
3738
}
38-
var toAdd = new[] { property };
39-
component.Items = component.Items == null ? toAdd : component.Items.Concat(toAdd).ToArray();
39+
40+
component.Items = ArrayHelper.Append(component.Items, property);
4041
}
4142

4243
public void Property(MemberInfo property, Action<IPropertyMapper> mapping)
@@ -168,4 +169,4 @@ public void Unique(bool unique)
168169
component.unique = unique;
169170
}
170171
}
171-
}
172+
}

src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Linq;
33
using NHibernate.Cfg.MappingSchema;
4+
using NHibernate.Util;
45

56
namespace NHibernate.Mapping.ByCode.Impl
67
{
@@ -61,8 +62,7 @@ protected override void AddProperty(object property)
6162
{
6263
throw new ArgumentNullException("property");
6364
}
64-
var toAdd = new[] { property };
65-
hbmJoin.Items = hbmJoin.Items == null ? toAdd : hbmJoin.Items.Concat(toAdd).ToArray();
65+
hbmJoin.Items = ArrayHelper.Append(hbmJoin.Items, property);
6666
}
6767

6868
public void Loader(string namedQueryReference)
@@ -156,4 +156,4 @@ public void Fetch(FetchKind fetchMode)
156156
hbmJoin.fetch = fetchMode.ToHbmJoinFetch();
157157
}
158158
}
159-
}
159+
}

src/NHibernate/Mapping/ByCode/Impl/JoinedSubclassMapper.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using NHibernate.Cfg.MappingSchema;
55
using NHibernate.Persister.Entity;
6+
using NHibernate.Util;
67

78
namespace NHibernate.Mapping.ByCode.Impl
89
{
@@ -13,15 +14,14 @@ public class JoinedSubclassMapper : AbstractPropertyContainerMapper, IJoinedSubc
1314

1415
public JoinedSubclassMapper(System.Type subClass, HbmMapping mapDoc) : base(subClass, mapDoc)
1516
{
16-
var toAdd = new[] {classMapping};
1717
classMapping.name = subClass.GetShortClassName(mapDoc);
1818
classMapping.extends = subClass.BaseType.GetShortClassName(mapDoc);
1919
if (classMapping.key == null)
2020
{
2121
classMapping.key = new HbmKey {column1 = subClass.BaseType.Name.ToLowerInvariant() + "_key"};
2222
}
2323
keyMapper = new KeyMapper(subClass, classMapping.key);
24-
mapDoc.Items = mapDoc.Items == null ? toAdd : mapDoc.Items.Concat(toAdd).ToArray();
24+
mapDoc.Items = ArrayHelper.Append(mapDoc.Items, classMapping);
2525
}
2626

2727
#region Overrides of AbstractPropertyContainerMapper
@@ -32,8 +32,7 @@ protected override void AddProperty(object property)
3232
{
3333
throw new ArgumentNullException("property");
3434
}
35-
var toAdd = new[] {property};
36-
classMapping.Items = classMapping.Items == null ? toAdd : classMapping.Items.Concat(toAdd).ToArray();
35+
classMapping.Items = ArrayHelper.Append(classMapping.Items, property);
3736
}
3837

3938
#endregion
@@ -214,4 +213,4 @@ public void Filter(string filterName, Action<IFilterMapper> filterMapping)
214213
}
215214
#endregion
216215
}
217-
}
216+
}

src/NHibernate/Mapping/ByCode/Impl/NaturalIdMapper.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
2-
using System.Linq;
32
using NHibernate.Cfg.MappingSchema;
3+
using NHibernate.Util;
44

55
namespace NHibernate.Mapping.ByCode.Impl
66
{
@@ -31,8 +31,8 @@ protected override void AddProperty(object property)
3131
{
3232
classMapping.naturalid = naturalIdmapping;
3333
}
34-
var toAdd = new[] {property};
35-
naturalIdmapping.Items = naturalIdmapping.Items == null ? toAdd : naturalIdmapping.Items.Concat(toAdd).ToArray();
34+
35+
naturalIdmapping.Items = ArrayHelper.Append(naturalIdmapping.Items, property);
3636
}
3737

3838
#endregion
@@ -46,4 +46,4 @@ public void Mutable(bool isMutable)
4646

4747
#endregion
4848
}
49-
}
49+
}

src/NHibernate/Mapping/ByCode/Impl/SubclassMapper.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using NHibernate.Cfg.MappingSchema;
55
using NHibernate.Persister.Entity;
6+
using NHibernate.Util;
67

78
namespace NHibernate.Mapping.ByCode.Impl
89
{
@@ -13,10 +14,9 @@ public class SubclassMapper : AbstractPropertyContainerMapper, ISubclassMapper
1314

1415
public SubclassMapper(System.Type subClass, HbmMapping mapDoc) : base(subClass, mapDoc)
1516
{
16-
var toAdd = new[] {classMapping};
1717
classMapping.name = subClass.GetShortClassName(mapDoc);
1818
classMapping.extends = subClass.BaseType.GetShortClassName(mapDoc);
19-
mapDoc.Items = mapDoc.Items == null ? toAdd : mapDoc.Items.Concat(toAdd).ToArray();
19+
mapDoc.Items = ArrayHelper.Append(mapDoc.Items, classMapping);
2020
}
2121

2222
#region Overrides of AbstractPropertyContainerMapper
@@ -27,8 +27,8 @@ protected override void AddProperty(object property)
2727
{
2828
throw new ArgumentNullException("property");
2929
}
30-
var toAdd = new[] {property};
31-
classMapping.Items = classMapping.Items == null ? toAdd : classMapping.Items.Concat(toAdd).ToArray();
30+
31+
classMapping.Items = ArrayHelper.Append(classMapping.Items, property);
3232
}
3333

3434
#endregion
@@ -76,9 +76,8 @@ public void Join(string splitGroupId, Action<IJoinMapper> splitMapping)
7676
{
7777
var hbmJoin = new HbmJoin();
7878
splitGroup = new JoinMapper(Container, splitGroupId, hbmJoin, MapDoc);
79-
var toAdd = new[] { hbmJoin };
8079
JoinMappers.Add(splitGroupId, splitGroup);
81-
classMapping.join = classMapping.join == null ? toAdd : classMapping.join.Concat(toAdd).ToArray();
80+
classMapping.join = ArrayHelper.Append(classMapping.join, hbmJoin);
8281
}
8382

8483
splitMapping(splitGroup);
@@ -202,4 +201,4 @@ public void Filter(string filterName, Action<IFilterMapper> filterMapping)
202201
}
203202
#endregion
204203
}
205-
}
204+
}

src/NHibernate/Mapping/ByCode/Impl/UnionSubclassMapper.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using NHibernate.Cfg.MappingSchema;
55
using NHibernate.Persister.Entity;
6+
using NHibernate.Util;
67

78
namespace NHibernate.Mapping.ByCode.Impl
89
{
@@ -14,15 +15,14 @@ public UnionSubclassMapper(System.Type subClass, HbmMapping mapDoc)
1415
: base(subClass, mapDoc)
1516
{
1617
classMapping = new HbmUnionSubclass();
17-
var toAdd = new[] {classMapping};
1818
classMapping.name = subClass.GetShortClassName(mapDoc);
1919
classMapping.extends = subClass.BaseType.GetShortClassName(mapDoc);
2020
if (subClass.IsAbstract)
2121
{
2222
classMapping.@abstract = true;
2323
classMapping.abstractSpecified = true;
2424
}
25-
mapDoc.Items = mapDoc.Items == null ? toAdd : mapDoc.Items.Concat(toAdd).ToArray();
25+
mapDoc.Items = ArrayHelper.Append(mapDoc.Items, classMapping);
2626
}
2727

2828
#region Overrides of AbstractPropertyContainerMapper
@@ -33,8 +33,8 @@ protected override void AddProperty(object property)
3333
{
3434
throw new ArgumentNullException("property");
3535
}
36-
var toAdd = new[] {property};
37-
classMapping.Items = classMapping.Items == null ? toAdd : classMapping.Items.Concat(toAdd).ToArray();
36+
37+
classMapping.Items = ArrayHelper.Append(classMapping.Items, property);
3838
}
3939

4040
#endregion
@@ -192,4 +192,4 @@ public void Extends(string entityOrClassName)
192192

193193
#endregion
194194
}
195-
}
195+
}

0 commit comments

Comments
 (0)