Skip to content

Commit f652d7c

Browse files
authored
Merge pull request #139 from humhei/dynamic
Remove dynamic keyword
2 parents 77770e4 + e46f7f6 commit f652d7c

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*.user
77
*.userosscache
88
*.sln.docstates
9-
9+
.ionide/**
1010
# User-specific files (MonoDevelop/Xamarin Studio)
1111
*.userprefs
1212

src/Hyperion/SerializerFactories/ArraySerializerFactory.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@ public override ValueSerializer BuildSerializer(Serializer serializer, Type type
7171
session.TrackSerializedObject(arr);
7272
}
7373

74-
// This janky way of converting array to Array is done to get around the problem of ValueType arrays
75-
WriteValues(((IEnumerable)arr).Cast<object>().ToArray(), stream, elementType, elementSerializer, session);
74+
WriteValues((Array)arr, stream, elementType, elementSerializer, session);
7675
};
7776
arraySerializer.Initialize(reader, writer);
7877

src/Hyperion/ValueSerializers/ConsistentArraySerializer.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,16 @@ public override void WriteValue(Stream stream, object value, SerializerSession s
7171
var elementSerializer = session.Serializer.GetSerializerByType(elementType);
7272
elementSerializer.WriteManifest(stream, session); //write array element type
7373
// ReSharper disable once PossibleNullReferenceException
74-
WriteValues((dynamic)value, stream,elementSerializer,session);
74+
WriteValues((Array)value, stream,elementSerializer,session);
7575
}
7676

77-
private static void WriteValues<T>(T[] array, Stream stream, ValueSerializer elementSerializer, SerializerSession session)
77+
private static void WriteValues(Array array, Stream stream, ValueSerializer elementSerializer, SerializerSession session)
7878
{
79+
var tp = array.GetType();
7980
Int32Serializer.WriteValueImpl(stream,array.Length,session);
80-
if (typeof(T).IsFixedSizeType())
81+
if (tp.IsFixedSizeType())
8182
{
82-
var size = typeof(T).GetTypeSize();
83+
var size = tp.GetTypeSize();
8384
var result = new byte[array.Length * size];
8485
Buffer.BlockCopy(array, 0, result, 0, result.Length);
8586
stream.Write(result);

0 commit comments

Comments
 (0)