Skip to content

Commit f14aed2

Browse files
author
Jiang Yin
committed
更新GF
1 parent a9a9a8a commit f14aed2

File tree

3 files changed

+47
-29
lines changed

3 files changed

+47
-29
lines changed

Libraries/GameFramework.dll

0 Bytes
Binary file not shown.

Libraries/GameFramework.xml

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21805,6 +21805,23 @@
2180521805
<param name="value">要转换的字符串。</param>
2180621806
<returns>用于存放结果的字节数组。</returns>
2180721807
</member>
21808+
<member name="M:GameFramework.Utility.Converter.GetBytes(System.String,System.Byte[])">
21809+
<summary>
21810+
以字节数组的形式获取 UTF-8 编码的字符串。
21811+
</summary>
21812+
<param name="value">要转换的字符串。</param>
21813+
<param name="buffer">用于存放结果的字节数组。</param>
21814+
<returns>buffer 内实际填充了多少字节。</returns>
21815+
</member>
21816+
<member name="M:GameFramework.Utility.Converter.GetBytes(System.String,System.Byte[],System.Int32)">
21817+
<summary>
21818+
以字节数组的形式获取 UTF-8 编码的字符串。
21819+
</summary>
21820+
<param name="value">要转换的字符串。</param>
21821+
<param name="buffer">用于存放结果的字节数组。</param>
21822+
<param name="startIndex">buffer 内的起始位置。</param>
21823+
<returns>buffer 内实际填充了多少字节。</returns>
21824+
</member>
2180821825
<member name="M:GameFramework.Utility.Converter.GetBytes(System.String,System.Text.Encoding)">
2180921826
<summary>
2181021827
以字节数组的形式获取指定编码的字符串。
@@ -21813,6 +21830,25 @@
2181321830
<param name="encoding">要使用的编码。</param>
2181421831
<returns>用于存放结果的字节数组。</returns>
2181521832
</member>
21833+
<member name="M:GameFramework.Utility.Converter.GetBytes(System.String,System.Text.Encoding,System.Byte[])">
21834+
<summary>
21835+
以字节数组的形式获取指定编码的字符串。
21836+
</summary>
21837+
<param name="value">要转换的字符串。</param>
21838+
<param name="encoding">要使用的编码。</param>
21839+
<param name="buffer">用于存放结果的字节数组。</param>
21840+
<returns>buffer 内实际填充了多少字节。</returns>
21841+
</member>
21842+
<member name="M:GameFramework.Utility.Converter.GetBytes(System.String,System.Text.Encoding,System.Byte[],System.Int32)">
21843+
<summary>
21844+
以字节数组的形式获取指定编码的字符串。
21845+
</summary>
21846+
<param name="value">要转换的字符串。</param>
21847+
<param name="encoding">要使用的编码。</param>
21848+
<param name="buffer">用于存放结果的字节数组。</param>
21849+
<param name="startIndex">buffer 内的起始位置。</param>
21850+
<returns>buffer 内实际填充了多少字节。</returns>
21851+
</member>
2181621852
<member name="M:GameFramework.Utility.Converter.GetString(System.Byte[])">
2181721853
<summary>
2181821854
返回由字节数组使用 UTF-8 编码转换成的字符串。
@@ -21919,13 +21955,6 @@
2191921955
<param name="obj">要序列化的对象。</param>
2192021956
<returns>序列化后的 JSON 字符串。</returns>
2192121957
</member>
21922-
<member name="M:GameFramework.Utility.Json.ToJsonData(System.Object)">
21923-
<summary>
21924-
将对象序列化为 JSON 流。
21925-
</summary>
21926-
<param name="obj">要序列化的对象。</param>
21927-
<returns>序列化后的 JSON 流。</returns>
21928-
</member>
2192921958
<member name="M:GameFramework.Utility.Json.ToObject``1(System.String)">
2193021959
<summary>
2193121960
将 JSON 字符串反序列化为对象。
@@ -21942,22 +21971,6 @@
2194221971
<param name="json">要反序列化的 JSON 字符串。</param>
2194321972
<returns>反序列化后的对象。</returns>
2194421973
</member>
21945-
<member name="M:GameFramework.Utility.Json.ToObject``1(System.Byte[])">
21946-
<summary>
21947-
将 JSON 流反序列化为对象。
21948-
</summary>
21949-
<typeparam name="T">对象类型。</typeparam>
21950-
<param name="jsonData">要反序列化的 JSON 流。</param>
21951-
<returns>反序列化后的对象。</returns>
21952-
</member>
21953-
<member name="M:GameFramework.Utility.Json.ToObject(System.Type,System.Byte[])">
21954-
<summary>
21955-
将 JSON 字符串反序列化为对象。
21956-
</summary>
21957-
<param name="objectType">对象类型。</param>
21958-
<param name="jsonData">要反序列化的 JSON 流。</param>
21959-
<returns>反序列化后的对象。</returns>
21960-
</member>
2196121974
<member name="T:GameFramework.Utility.Json.IJsonHelper">
2196221975
<summary>
2196321976
JSON 辅助器接口。

Scripts/Runtime/Utility/BinaryExtension.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
/// </summary>
1515
public static class BinaryExtension
1616
{
17-
private static readonly byte[] s_CachedBytes = new byte[byte.MaxValue];
17+
private static readonly byte[] s_CachedBytes = new byte[byte.MaxValue + 1];
1818

1919
/// <summary>
2020
/// 从二进制流读取编码后的 32 位有符号整数。
@@ -154,6 +154,11 @@ public static string ReadEncryptedString(this BinaryReader binaryReader, byte[]
154154
return null;
155155
}
156156

157+
if (length > byte.MaxValue)
158+
{
159+
throw new GameFrameworkException("String is too long.");
160+
}
161+
157162
for (byte i = 0; i < length; i++)
158163
{
159164
s_CachedBytes[i] = binaryReader.ReadByte();
@@ -179,14 +184,14 @@ public static void WriteEncryptedString(this BinaryWriter binaryWriter, string v
179184
return;
180185
}
181186

182-
byte[] encryptedStringBytes = Utility.Converter.GetBytes(value);
183-
if (encryptedStringBytes.Length > byte.MaxValue)
187+
int length = Utility.Converter.GetBytes(value, s_CachedBytes);
188+
if (length > byte.MaxValue)
184189
{
185190
throw new GameFrameworkException(Utility.Text.Format("String '{0}' is too long.", value));
186191
}
187192

188-
Utility.Encryption.GetSelfXorBytes(encryptedStringBytes, encryptBytes);
189-
binaryWriter.Write((byte)encryptedStringBytes.Length);
190-
binaryWriter.Write(encryptedStringBytes);
193+
Utility.Encryption.GetSelfXorBytes(s_CachedBytes, encryptBytes);
194+
binaryWriter.Write((byte)length);
195+
binaryWriter.Write(s_CachedBytes, 0, length);
191196
}
192197
}

0 commit comments

Comments
 (0)