From 1606ce4138972c6cdffb8f8fd8ea8896ddabc622 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 20 Jun 2023 20:59:04 +0100 Subject: [PATCH] YEngine store a bool as integer on a lsl list in one initialization case --- OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | 6 ++---- OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs | 9 +++++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs index f2783c814c..06e804a71a 100644 --- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs @@ -1124,8 +1124,7 @@ namespace OpenSim.Region.ScriptEngine.Shared object[] tmp; if (m_data is null || m_data.Length == 0) { - tmp = new object[1]; - tmp.SetValue(o, 0); + tmp = new object[] {o}; } else { @@ -1194,8 +1193,7 @@ namespace OpenSim.Region.ScriptEngine.Shared object[] tmp; if (m_data is null || m_data.Length == 0) { - tmp = new object[1]; - tmp[0] = o; + tmp = new object[] { o }; } else { diff --git a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs index 0ccb1027d4..c9855e613f 100644 --- a/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs +++ b/OpenSim/Region/ScriptEngine/YEngine/MMRScriptCodeGen.cs @@ -4908,12 +4908,17 @@ namespace OpenSim.Region.ScriptEngine.Yengine ilGen.Emit(val, OpCodes.Newobj, lslFloatConstructorInfo); ilGen.Emit(val, OpCodes.Box, typeof(LSL_Float)); } - else if(eRVal.type is TokenTypeInt) + else if (eRVal.type is TokenTypeInt) { ilGen.Emit(val, OpCodes.Newobj, lslIntegerConstructorInfo); ilGen.Emit(val, OpCodes.Box, typeof(LSL_Integer)); } - else if((eRVal.type is TokenTypeKey) || (eRVal.type is TokenTypeStr)) + else if (eRVal.type is TokenTypeBool) + { + ilGen.Emit(val, OpCodes.Newobj, lslIntegerConstructorInfo); + ilGen.Emit(val, OpCodes.Box, typeof(LSL_Integer)); + } + else if ((eRVal.type is TokenTypeKey) || (eRVal.type is TokenTypeStr)) { ilGen.Emit(val, OpCodes.Newobj, lslStringConstructorInfo); ilGen.Emit(val, OpCodes.Box, typeof(LSL_String));