Fix minor race conditions in OSSL_Api functions where a parcel could be misidentified for moving prims.

user_profiles
Justin Clark-Casey (justincc) 2013-03-14 23:09:59 +00:00
parent f8dab4f93f
commit 55204ccde6
1 changed files with 4 additions and 6 deletions

View File

@ -363,7 +363,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
//OSSL only may be used if object is in the same group as the parcel //OSSL only may be used if object is in the same group as the parcel
if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_GROUP_MEMBER")) if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_GROUP_MEMBER"))
{ {
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition);
if (land.LandData.GroupID == m_item.GroupID && land.LandData.GroupID != UUID.Zero) if (land.LandData.GroupID == m_item.GroupID && land.LandData.GroupID != UUID.Zero)
{ {
@ -374,7 +374,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
//Only Parcelowners may use the function //Only Parcelowners may use the function
if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_OWNER")) if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_OWNER"))
{ {
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition);
if (land.LandData.OwnerID == ownerID) if (land.LandData.OwnerID == ownerID)
{ {
@ -1502,8 +1502,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
ILandObject land ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition);
= World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
if (land.LandData.OwnerID != m_host.OwnerID) if (land.LandData.OwnerID != m_host.OwnerID)
return; return;
@ -1519,8 +1518,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
ILandObject land ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition);
= World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
if (land.LandData.OwnerID != m_host.OwnerID) if (land.LandData.OwnerID != m_host.OwnerID)
{ {