Skip to content

Commit 1c5c541

Browse files
author
quyong
committed
当pushstring发现缓冲长度不足时扩大缓冲长度
1 parent 34c1876 commit 1c5c541

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

Assets/XLua/Src/LuaDLL.cs

+5-8
Original file line numberDiff line numberDiff line change
@@ -301,16 +301,13 @@ public static void lua_pushstring(IntPtr L, string str) //业务使用
301301
else
302302
{
303303
#if !THREAD_SAFE && !HOTFIX_ENABLE
304-
if (Encoding.UTF8.GetByteCount(str) > InternalGlobals.strBuff.Length)
305-
{
306-
byte[] bytes = Encoding.UTF8.GetBytes(str);
307-
xlua_pushlstring(L, bytes, bytes.Length);
308-
}
309-
else
304+
int str_len = str.Length;
305+
if (InternalGlobals.strBuff.Length < str_len)
310306
{
311-
int bytes_len = Encoding.UTF8.GetBytes(str, 0, str.Length, InternalGlobals.strBuff, 0);
312-
xlua_pushlstring(L, InternalGlobals.strBuff, bytes_len);
307+
InternalGlobals.strBuff = new byte[str_len];
313308
}
309+
int bytes_len = Encoding.UTF8.GetBytes(str, 0, str.Length, InternalGlobals.strBuff, 0);
310+
xlua_pushlstring(L, InternalGlobals.strBuff, bytes_len);
314311
#else
315312
var bytes = Encoding.UTF8.GetBytes(str);
316313
xlua_pushlstring(L, bytes, bytes.Length);

0 commit comments

Comments
 (0)