mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 16:22:50 +08:00
reduce potencial useless string casts from list items
This commit is contained in:
@@ -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()); });
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -918,6 +918,49 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
||||
return new LSL_Types.LSLString(o.ToString());
|
||||
}
|
||||
|
||||
public string GetStringItem(int itemIndex)
|
||||
{
|
||||
object o = Data[itemIndex];
|
||||
if (o is LSL_Types.key)
|
||||
return ((LSL_Types.key)o).value;
|
||||
return o.ToString();
|
||||
}
|
||||
|
||||
public LSL_Types.LSLString GetStrictLSLStringItem(int itemIndex)
|
||||
{
|
||||
object o = Data[itemIndex];
|
||||
if (o is LSL_Types.LSLString)
|
||||
return ((LSL_Types.LSLString)o);
|
||||
if (o is string)
|
||||
return new LSL_Types.LSLString((string)o);
|
||||
if (o is LSL_Types.key)
|
||||
return ((LSL_Types.key)o).value;
|
||||
|
||||
throw new InvalidCastException(string.Format(
|
||||
"{0} expected but {1} given",
|
||||
typeof(LSL_Types.LSLString).Name,
|
||||
o != null ?
|
||||
o.GetType().Name : "null"));
|
||||
}
|
||||
|
||||
public string GetStrictStringItem(int itemIndex)
|
||||
{
|
||||
object o = Data[itemIndex];
|
||||
if (o is LSL_Types.LSLString)
|
||||
return ((LSL_Types.LSLString)o).m_string;
|
||||
if (o is string)
|
||||
return (string)o;
|
||||
if (o is LSL_Types.key)
|
||||
return ((LSL_Types.key)o).value;
|
||||
|
||||
throw new InvalidCastException(string.Format(
|
||||
"{0} expected but {1} given",
|
||||
typeof(LSL_Types.LSLString).Name,
|
||||
o != null ?
|
||||
o.GetType().Name : "null"));
|
||||
}
|
||||
|
||||
|
||||
public LSL_Types.LSLInteger GetLSLIntegerItem(int itemIndex)
|
||||
{
|
||||
object o = Data[itemIndex];
|
||||
|
||||
Reference in New Issue
Block a user