Fix bug where using PRIM_LINK_TARGET with only two remaining list items (e.g. link number then PRIM_ROTATION) would not return the parameter
Extended regression test for this case0.7.6-extended
parent
9fcf1de0fa
commit
6f5fd067a5
|
@ -8202,7 +8202,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
else
|
||||
remaining = GetAgentParams((ScenePresence)entity, rules, ref result);
|
||||
|
||||
if (remaining == null || remaining.Length <= 2)
|
||||
if (remaining == null || remaining.Length < 2)
|
||||
return result;
|
||||
|
||||
int linknumber = remaining.GetLSLIntegerItem(0);
|
||||
|
@ -8786,7 +8786,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
|||
case (int)ScriptBaseClass.PRIM_LINK_TARGET:
|
||||
|
||||
// TODO: Should be issuing a runtime script warning in this case.
|
||||
if (remain < 3)
|
||||
if (remain < 2)
|
||||
return null;
|
||||
|
||||
return rules.GetSublist(idx, -1);
|
||||
|
|
|
@ -100,6 +100,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests
|
|||
Assert.That(resList.Length, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
// Check 2 prim case
|
||||
{
|
||||
LSL_List resList
|
||||
= apiGrp1.llGetLinkPrimitiveParams(
|
||||
1,
|
||||
new LSL_List(
|
||||
new LSL_Integer(ScriptBaseClass.PRIM_ROTATION),
|
||||
new LSL_Integer(ScriptBaseClass.PRIM_LINK_TARGET),
|
||||
new LSL_Integer(2),
|
||||
new LSL_Integer(ScriptBaseClass.PRIM_ROTATION)));
|
||||
|
||||
Assert.That(resList.Length, Is.EqualTo(2));
|
||||
}
|
||||
|
||||
// Check invalid parameters are ignored
|
||||
{
|
||||
LSL_List resList
|
||||
|
|
Loading…
Reference in New Issue