Skip to content

Commit 3aa3ca3

Browse files
committed
Removed boxing Serialization API's from BinarySerializer
1 parent c2b5e6e commit 3aa3ca3

File tree

1 file changed

+23
-35
lines changed

1 file changed

+23
-35
lines changed

MLAPI/NetworkingManagerComponents/Binary/BinarySerializer.cs

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -51,29 +51,6 @@ public static byte[] Serialize<T>(T instance)
5151
}
5252
}
5353

54-
/// <summary>
55-
/// Serializes a class instance and writes it to a writer
56-
/// </summary>
57-
/// <typeparam name="T">The class type to serialize</typeparam>
58-
/// <param name="instance">The instance to serialize</param>
59-
/// <param name="writer">The writer to write to</param>
60-
public static void Serialize(object instance, BitWriter writer)
61-
{
62-
FieldInfo[] sortedFields;
63-
64-
if (cachedFields.ContainsKey(instance.GetType().FullName))
65-
sortedFields = cachedFields[instance.GetType().FullName];
66-
else
67-
{
68-
sortedFields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).Where(x => !x.IsDefined(typeof(BinaryIgnore), true)).ToArray();
69-
cachedFields.Add(instance.GetType().FullName, sortedFields);
70-
}
71-
for (int i = 0; i < sortedFields.Length; i++)
72-
{
73-
FieldTypeHelper.WriteFieldType(writer, sortedFields[i].GetValue(instance));
74-
}
75-
}
76-
7754
/// <summary>
7855
/// Deserializes binary and turns it back into the original class
7956
/// </summary>
@@ -110,12 +87,13 @@ public static void Serialize(object instance, BitWriter writer)
11087
/// <typeparam name="T">The type to return</typeparam>
11188
/// <param name="reader">The reader to deserialize</param>
11289
/// <returns>An instance of T</returns>
113-
public static object Deserialize(BitReader reader, Type type)
90+
public static T Deserialize<T>(BitReader reader) where T : new()
11491
{
115-
object instance = Activator.CreateInstance(type);
92+
T instance = new T();
93+
11694
FieldInfo[] sortedFields;
11795

118-
if (cachedFields.ContainsKey(type.FullName))
96+
if (cachedFields.ContainsKey(instance.GetType().FullName))
11997
sortedFields = cachedFields[instance.GetType().FullName];
12098
else
12199
{
@@ -130,16 +108,8 @@ public static object Deserialize(BitReader reader, Type type)
130108
return instance;
131109
}
132110

133-
/// <summary>
134-
/// Deserializes binary and turns it back into the original class
135-
/// </summary>
136-
/// <typeparam name="T">The type to return</typeparam>
137-
/// <param name="reader">The reader to deserialize</param>
138-
/// <returns>An instance of T</returns>
139-
public static T Deserialize<T>(BitReader reader) where T : new()
111+
internal static void Serialize(object instance, BitWriter writer)
140112
{
141-
T instance = new T();
142-
143113
FieldInfo[] sortedFields;
144114

145115
if (cachedFields.ContainsKey(instance.GetType().FullName))
@@ -149,6 +119,24 @@ public static object Deserialize(BitReader reader, Type type)
149119
sortedFields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).Where(x => !x.IsDefined(typeof(BinaryIgnore), true)).ToArray();
150120
cachedFields.Add(instance.GetType().FullName, sortedFields);
151121
}
122+
for (int i = 0; i < sortedFields.Length; i++)
123+
{
124+
FieldTypeHelper.WriteFieldType(writer, sortedFields[i].GetValue(instance));
125+
}
126+
}
127+
128+
internal static object Deserialize(BitReader reader, Type type)
129+
{
130+
object instance = Activator.CreateInstance(type);
131+
FieldInfo[] sortedFields;
132+
133+
if (cachedFields.ContainsKey(type.FullName))
134+
sortedFields = cachedFields[instance.GetType().FullName];
135+
else
136+
{
137+
sortedFields = instance.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(x => x.Name).Where(x => !x.IsDefined(typeof(BinaryIgnore), true)).ToArray();
138+
cachedFields.Add(instance.GetType().FullName, sortedFields);
139+
}
152140

153141
for (int i = 0; i < sortedFields.Length; i++)
154142
{

0 commit comments

Comments
 (0)