From b73589e10da7eff22d8b76baee1a192b2e692781 Mon Sep 17 00:00:00 2001 From: Magicqy Date: Thu, 13 Feb 2025 14:27:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=93pushstring=E5=8F=91=E7=8E=B0=E7=BC=93?= =?UTF-8?q?=E5=86=B2=E9=95=BF=E5=BA=A6=E4=B8=8D=E8=B6=B3=E6=97=B6=E6=89=A9?= =?UTF-8?q?=E5=A4=A7=E7=BC=93=E5=86=B2=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/XLua/Src/LuaDLL.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Assets/XLua/Src/LuaDLL.cs b/Assets/XLua/Src/LuaDLL.cs index 6bf16d721..81581a3ad 100644 --- a/Assets/XLua/Src/LuaDLL.cs +++ b/Assets/XLua/Src/LuaDLL.cs @@ -301,16 +301,14 @@ public static void lua_pushstring(IntPtr L, string str) //业务使用 else { #if !THREAD_SAFE && !HOTFIX_ENABLE - if (Encoding.UTF8.GetByteCount(str) > InternalGlobals.strBuff.Length) - { - byte[] bytes = Encoding.UTF8.GetBytes(str); - xlua_pushlstring(L, bytes, bytes.Length); - } - else + int str_len = str.Length; + if (InternalGlobals.strBuff.Length < str_len) { - int bytes_len = Encoding.UTF8.GetBytes(str, 0, str.Length, InternalGlobals.strBuff, 0); - xlua_pushlstring(L, InternalGlobals.strBuff, bytes_len); + InternalGlobals.strBuff = new byte[str_len]; } + + int bytes_len = Encoding.UTF8.GetBytes(str, 0, str_len, InternalGlobals.strBuff, 0); + xlua_pushlstring(L, InternalGlobals.strBuff, bytes_len); #else var bytes = Encoding.UTF8.GetBytes(str); xlua_pushlstring(L, bytes, bytes.Length);