From e46248ab17d56ec25c6b7495c23afe98838a89b6 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Wed, 13 Aug 2008 14:13:46 +0000 Subject: Thank you, tyre, for a patch that fixes a null reference in LSL function llOverMyLand(). --- .../Shared/Api/Implementation/LSL_Api.cs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Shared/Api') diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 17e8253..a8f87b7 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -4151,26 +4151,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Types.LSLInteger llOverMyLand(string id) { - m_host.AddScriptLPS(1); LLUUID key = new LLUUID(); if (LLUUID.TryParse(id,out key)) { - SceneObjectPart obj = new SceneObjectPart(); - obj = World.GetSceneObjectPart(World.Entities[key].LocalId); - if (obj.OwnerID == World.GetLandOwner(obj.AbsolutePosition.X, obj.AbsolutePosition.Y)) + ScenePresence presence = World.GetScenePresence(key); + if (presence != null) // object is an avatar { - return 1; + if (m_host.OwnerID == World.GetLandOwner(presence.AbsolutePosition.X, presence.AbsolutePosition.Y)) + return 1; } - else + else // object is not an avatar { - return 0; + SceneObjectPart obj = World.GetSceneObjectPart(key); + if (obj != null) + if (m_host.OwnerID == World.GetLandOwner(obj.AbsolutePosition.X, obj.AbsolutePosition.Y)) + return 1; } } - else - { - return 0; - } + return 0; } public string llGetLandOwnerAt(LSL_Types.Vector3 pos) -- cgit v1.1