Fix minor race conditions in detecting current parcel for llAddToLandPassList(), llSetParcelMusicURL() and llGetParcelMusicURL() for moving prims

user_profiles
Justin Clark-Casey (justincc) 2013-03-14 22:31:07 +00:00
parent e6eb914675
commit e7603f98b7
1 changed files with 7 additions and 3 deletions

View File

@ -6571,7 +6571,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
UUID key;
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
Vector3 pos = m_host.AbsolutePosition;
ILandObject land = World.LandChannel.GetLandObject(pos.X, pos.Y);
if (World.Permissions.CanEditParcelProperties(m_host.OwnerID, land, GroupPowers.LandManageBanned))
{
int expires = 0;
@ -7800,7 +7802,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
Vector3 pos = m_host.AbsolutePosition;
ILandObject land = World.LandChannel.GetLandObject(pos.X, pos.Y);
if (land.LandData.OwnerID != m_host.OwnerID)
return;
@ -7814,7 +7817,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
Vector3 pos = m_host.AbsolutePosition;
ILandObject land = World.LandChannel.GetLandObject(pos.X, pos.Y);
if (land.LandData.OwnerID != m_host.OwnerID)
return String.Empty;