Skip to content

Commit b73589e

Browse files
committed
当pushstring发现缓冲长度不足时扩大缓冲长度
1 parent 9ee9f13 commit b73589e

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

Assets/XLua/Src/LuaDLL.cs

+6-8
Original file line numberDiff line numberDiff line change
@@ -301,16 +301,14 @@ 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+
310+
int bytes_len = Encoding.UTF8.GetBytes(str, 0, str_len, InternalGlobals.strBuff, 0);
311+
xlua_pushlstring(L, InternalGlobals.strBuff, bytes_len);
314312
#else
315313
var bytes = Encoding.UTF8.GetBytes(str);
316314
xlua_pushlstring(L, bytes, bytes.Length);

0 commit comments

Comments
 (0)