reduce potencial useless string casts from list items

This commit is contained in:
UbitUmarov
2023-03-15 09:06:59 +00:00
parent 5ad710c8df
commit bf90a8d1c5
4 changed files with 63 additions and 20 deletions

View File

@@ -7179,7 +7179,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
case ScriptBaseClass.PSYS_SRC_TEXTURE:
try
{
prules.Texture = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, rules.GetLSLStringItem(i + 1));
prules.Texture = ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, rules.GetStrictStringItem(i + 1));
}
catch(InvalidCastException)
{
@@ -9716,14 +9716,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
LSL_Vector primTextColor;
LSL_Float primTextAlpha;
object o = rules.Data[idx];
if (o is LSL_Types.LSLString || o is LSL_Types.key)
primText = rules.GetLSLStringItem(idx++);
else
try
{
//throw new InvalidCastException(string.Format("Error running rule #{0} -> PRIM_TEXT: arg #{1} - parameter 2 must be string", rulesParsed, idx - idxStart - 1));
Error(originFunc, string.Format("Error running rule #{0} -> PRIM_TEXT: arg #{1} - parameter 2 must be string", rulesParsed, idx - idxStart - 1));
return new LSL_List();
primText = rules.GetStrictStringItem(idx++);
}
catch(InvalidCastException)
{
Error(originFunc, string.Format("Error running rule #{0} -> PRIM_TEXT: arg #{1} - parameter 2 must be string", rulesParsed, idx - idxStart - 1));
return new LSL_List();
}
try
{
@@ -9753,7 +9753,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return new LSL_List();
try
{
string primName = rules.GetLSLStringItem(idx++);
string primName = rules.GetStrictStringItem(idx++);
part.Name = primName;
}
catch(InvalidCastException)
@@ -9767,7 +9767,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return new LSL_List();
try
{
string primDesc = rules.GetLSLStringItem(idx++);
string primDesc = rules.GetStrictStringItem(idx++);
part.Description = primDesc;
}
catch(InvalidCastException)
@@ -11666,11 +11666,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
break;
case ScriptBaseClass.PRIM_MEDIA_CURRENT_URL:
me.CurrentURL = rules.GetLSLStringItem(i++);
me.CurrentURL = rules.GetStringItem(i++);
break;
case ScriptBaseClass.PRIM_MEDIA_HOME_URL:
me.HomeURL = rules.GetLSLStringItem(i++);
me.HomeURL = rules.GetStringItem(i++);
break;
case ScriptBaseClass.PRIM_MEDIA_AUTO_LOOP:
@@ -11706,7 +11706,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
break;
case ScriptBaseClass.PRIM_MEDIA_WHITELIST:
string[] rawWhiteListUrls = rules.GetLSLStringItem(i++).ToString().Split(new char[] { ',' });
string[] rawWhiteListUrls = rules.GetStringItem(i++).Split(new char[] { ',' });
List<string> whiteListUrls = new();
Array.ForEach(
rawWhiteListUrls, delegate(string rawUrl) { whiteListUrls.Add(rawUrl.Trim()); });

View File

@@ -559,7 +559,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
idx++;
try
{
wl.normalMapTexture = new UUID(rules.GetLSLStringItem(idx).m_string);
wl.normalMapTexture = new UUID(rules.GetStrictStringItem(idx));
}
catch (ArgumentException)
{

View File

@@ -1355,10 +1355,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
return "";
}
drawList += "FillPolygon " + x.GetLSLStringItem(0) + "," + y.GetLSLStringItem(0);
drawList += "FillPolygon " + x.GetStringItem(0) + "," + y.GetStringItem(0);
for (int i = 1; i < x.Length; i++)
{
drawList += "," + x.GetLSLStringItem(i) + "," + y.GetLSLStringItem(i);
drawList += "," + x.GetStringItem(i) + "," + y.GetStringItem(i);
}
drawList += "; ";
return drawList;
@@ -1372,10 +1372,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
return "";
}
drawList += "Polygon " + x.GetLSLStringItem(0) + "," + y.GetLSLStringItem(0);
drawList += "Polygon " + x.GetStringItem(0) + "," + y.GetStringItem(0);
for (int i = 1; i < x.Length; i++)
{
drawList += "," + x.GetLSLStringItem(i) + "," + y.GetLSLStringItem(i);
drawList += "," + x.GetStringItem(i) + "," + y.GetStringItem(i);
}
drawList += "; ";
return drawList;
@@ -1767,7 +1767,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
for (int idx = 0; idx < rules.Length;)
{
int code = rules.GetLSLIntegerItem(idx++);
string arg = rules.GetLSLStringItem(idx++);
string arg = rules.GetStringItem(idx++);
switch (code)
{
case ScriptBaseClass.PARCEL_DETAILS_NAME:
@@ -2163,7 +2163,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
StringBuilder notecardData = new();
for (int i = 0; i < contents.Length; i++)
notecardData.Append((string)(contents.GetLSLStringItem(i) + "\n"));
notecardData.Append(contents.GetStringItem(i) + "\n");
SaveNotecard(notecardName, "Script generated notecard", notecardData.ToString(), false);
}