From be2ad79e52efb5eb543057e8e73fa601d0b91c87 Mon Sep 17 00:00:00 2001
From: Jeff Ames
Date: Thu, 20 Dec 2007 05:43:02 +0000
Subject: Added patch from Johan. First attempt to solve the LibSL.Packet GC
 problem. Works with LibSL rev>1532

---
 OpenSim/Region/ClientStack/ClientView.cs           | 37 +++++++-----
 .../Region/ClientStack/RegionApplicationBase.cs    |  2 +-
 OpenSim/Region/ClientStack/UDPServer.cs            | 65 +++++++++++++++++++++-
 .../Communications/Local/LocalBackEndServices.cs   |  2 +-
 .../Communications/Local/LocalLoginService.cs      | 10 ++--
 .../Region/Communications/OGS1/OGS1GridServices.cs |  6 +-
 .../Communications/OGS1/OGS1InventoryService.cs    |  2 +-
 .../Region/Communications/OGS1/OGS1UserServices.cs |  2 +-
 .../Region/Environment/Scenes/Scene.Inventory.cs   |  2 +-
 OpenSim/Region/Environment/Scenes/Scene.cs         | 11 ++--
 .../Region/Environment/Scenes/SceneObjectPart.cs   | 22 ++++----
 OpenSim/Region/Environment/Scenes/ScenePresence.cs |  6 +-
 .../Engines/CSharp/Examples/ExportRegionToLSL.cs   |  4 +-
 .../Compiler/Server_API/LSL_BuiltIn_Commands.cs    | 36 ++++--------
 14 files changed, 130 insertions(+), 77 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index 75c4187..58cb9a2 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -535,7 +535,7 @@ namespace OpenSim.Region.ClientStack
         /// <param name="regionInfo"></param>
         public void SendRegionHandshake(RegionInfo regionInfo)
         {
-            RegionHandshakePacket handshake = new RegionHandshakePacket();
+            RegionHandshakePacket handshake = (RegionHandshakePacket) PacketPool.Instance.GetPacket(PacketType.RegionHandshake);
 
             handshake.RegionInfo.BillableFactor = regionInfo.EstateSettings.billableFactor;
             handshake.RegionInfo.IsEstateManager = false;
@@ -2187,17 +2187,22 @@ namespace OpenSim.Region.ClientStack
             // Actually make the byte array and send it
             try
             {
-                byte[] sendbuffer = Pack.ToBytes();
-                if (Pack.Header.Zerocoded)
-                {
-                    byte[] ZeroOutBuffer = new byte[4096];
-                    int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer);
-                    m_networkServer.SendPacketTo(ZeroOutBuffer, packetsize, SocketFlags.None, m_circuitCode);
-                }
-                else
-                {
-                    m_networkServer.SendPacketTo(sendbuffer, sendbuffer.Length, SocketFlags.None, m_circuitCode);
-                }
+              byte[] sendbuffer = Pack.ToBytes();
+              if (Pack is RegionHandshakePacket) 
+              {
+                  PacketPool.Instance.ReturnPacket(Pack);
+              }
+
+              if (Pack.Header.Zerocoded)
+              {
+                  byte[] ZeroOutBuffer = new byte[4096];
+                  int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer);
+                  m_networkServer.SendPacketTo(ZeroOutBuffer, packetsize, SocketFlags.None, m_circuitCode);
+              }
+              else
+              {
+                  m_networkServer.SendPacketTo(sendbuffer, sendbuffer.Length, SocketFlags.None, m_circuitCode);
+              }
             }
             catch (Exception e)
             {
@@ -2801,7 +2806,7 @@ namespace OpenSim.Region.ClientStack
                     case PacketType.AssetUploadRequest:
                         AssetUploadRequestPacket request = (AssetUploadRequestPacket) Pack;
                         // Console.WriteLine("upload request " + Pack.ToString());
-                        // Console.WriteLine("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionId).ToStringHyphenated());
+                        // Console.WriteLine("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionId).ToString());
                         if (OnAssetUploadRequest != null)
                         {
                             LLUUID temp=libsecondlife.LLUUID.Combine(request.AssetBlock.TransactionID, SecureSessionId);
@@ -2928,7 +2933,7 @@ namespace OpenSim.Region.ClientStack
                                 AssetBase asset = m_assetCache.GetAsset(update.InventoryData[i].TransactionID.Combine(this.SecureSessionId));
                                 if (asset != null)
                                 {
-                                    // Console.WriteLine("updating inventory item, found asset" + asset.FullID.ToStringHyphenated() + " already in cache");
+                                    // Console.WriteLine("updating inventory item, found asset" + asset.FullID.ToString() + " already in cache");
                                     m_inventoryCache.UpdateInventoryItemAsset(this, update.InventoryData[i].ItemID, asset);
                                 }
                                 else
@@ -2936,7 +2941,7 @@ namespace OpenSim.Region.ClientStack
                                     asset = this.UploadAssets.AddUploadToAssetCache(update.InventoryData[i].TransactionID);
                                     if (asset != null)
                                     {
-                                        //Console.WriteLine("updating inventory item, adding asset" + asset.FullID.ToStringHyphenated() + " to cache");
+                                        //Console.WriteLine("updating inventory item, adding asset" + asset.FullID.ToString() + " to cache");
                                         m_inventoryCache.UpdateInventoryItemAsset(this, update.InventoryData[i].ItemID, asset);
                                     }
                                     else
@@ -3351,6 +3356,8 @@ namespace OpenSim.Region.ClientStack
                         #endregion
                 }
             }
+
+            PacketPool.Instance.ReturnPacket(Pack);
         }
 
         private static PrimitiveBaseShape GetShapeFromAddPacket(ObjectAddPacket addPacket)
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index 51155ac..f20b132 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -134,7 +134,7 @@ namespace OpenSim.Region.ClientStack
 
             if (masterAvatar != null)
             {
-                m_log.Verbose("PARCEL", "Found master avatar [" + masterAvatar.UUID.ToStringHyphenated() + "]");
+                m_log.Verbose("PARCEL", "Found master avatar [" + masterAvatar.UUID.ToString() + "]");
                 scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.UUID;
             }
             else
diff --git a/OpenSim/Region/ClientStack/UDPServer.cs b/OpenSim/Region/ClientStack/UDPServer.cs
index f91e5e2..5cad041 100644
--- a/OpenSim/Region/ClientStack/UDPServer.cs
+++ b/OpenSim/Region/ClientStack/UDPServer.cs
@@ -26,6 +26,7 @@
 * 
 */
 using System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Net;
 using System.Net.Sockets;
@@ -36,6 +37,68 @@ using OpenSim.Framework.Console;
 
 namespace OpenSim.Region.ClientStack
 {
+    public sealed class PacketPool
+    {
+        // Set up a thread-safe singleton pattern
+        static PacketPool()
+        {
+        }
+
+        static readonly PacketPool instance = new PacketPool();
+
+        public static PacketPool Instance
+        {
+            get
+            {
+                return instance;
+            }
+        }
+
+        private Hashtable pool = new Hashtable();
+
+        public Packet GetPacket(PacketType type) {
+            Packet packet = null;
+
+            lock(pool)
+            {
+                if(pool[type] == null || ((Stack) pool[type]).Count == 0)
+                {
+                    // Creating a new packet if we cannot reuse an old package
+                    packet = Packet.BuildPacket(type);
+                }
+                else
+                {
+                    // Recycle old packages
+                    packet=(Packet) ((Stack) pool[type]).Pop();
+                }
+            }
+
+            return packet;
+        }
+
+        public Packet GetPacket(byte[] bytes, ref int packetEnd, byte[] zeroBuffer) {
+            Packet packet = GetPacket(Packet.GetType(bytes, packetEnd, zeroBuffer));
+
+            int i = 0;
+            packet.FromBytes(bytes, ref i, ref packetEnd, zeroBuffer);
+            return packet;
+        }
+
+        public void ReturnPacket(Packet packet) {
+            lock(pool)
+            {
+                PacketType type=packet.Type;
+
+                if(pool[type] == null)
+                {
+                    pool[type] = new Stack();
+                }
+
+                ((Stack) pool[type]).Push(packet);
+            }
+        }
+    }
+
     public class UDPServer : ClientStackNetworkHandler
     {
         protected Dictionary<EndPoint, uint> clientCircuits = new Dictionary<EndPoint, uint>();
@@ -194,7 +257,7 @@ namespace OpenSim.Region.ClientStack
 
             try
             {
-                packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
+                packet = PacketPool.Instance.GetPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
             }
             catch(Exception)
             {
diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
index 0ec7c99..f57de1c 100644
--- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
+++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
@@ -374,7 +374,7 @@ namespace OpenSim.Region.Communications.Local
                 regData["status"] = "active";
                 regData["handle"] = region.ToString();
 
-                respData[reg.RegionID.ToStringHyphenated()] = regData;
+                respData[reg.RegionID.ToString()] = regData;
             }
         }
 
diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs
index 37cea1f..2c08707 100644
--- a/OpenSim/Region/Communications/Local/LocalLoginService.cs
+++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs
@@ -177,10 +177,10 @@ namespace OpenSim.Region.Communications.Local
                     }
                     TempHash = new Hashtable();
                     TempHash["name"] = InvFolder.name;
-                    TempHash["parent_id"] = InvFolder.parentID.ToStringHyphenated();
+                    TempHash["parent_id"] = InvFolder.parentID.ToString();
                     TempHash["version"] = (Int32) InvFolder.version;
                     TempHash["type_default"] = (Int32) InvFolder.type;
-                    TempHash["folder_id"] = InvFolder.folderID.ToStringHyphenated();
+                    TempHash["folder_id"] = InvFolder.folderID.ToString();
                     AgentInventoryArray.Add(TempHash);
                 }
                 return new InventoryData(AgentInventoryArray, rootID);
@@ -196,10 +196,10 @@ namespace OpenSim.Region.Communications.Local
                 {
                     TempHash = new Hashtable();
                     TempHash["name"] = InvFolder.FolderName;
-                    TempHash["parent_id"] = InvFolder.ParentID.ToStringHyphenated();
+                    TempHash["parent_id"] = InvFolder.ParentID.ToString();
                     TempHash["version"] = (Int32) InvFolder.Version;
                     TempHash["type_default"] = (Int32) InvFolder.DefaultType;
-                    TempHash["folder_id"] = InvFolder.FolderID.ToStringHyphenated();
+                    TempHash["folder_id"] = InvFolder.FolderID.ToString();
                     AgentInventoryArray.Add(TempHash);
                 }
 
@@ -207,4 +207,4 @@ namespace OpenSim.Region.Communications.Local
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
index fbb83fc..060fe28 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
@@ -103,7 +103,7 @@ namespace OpenSim.Region.Communications.OGS1
             // Login / Authentication
 
             GridParams["authkey"] = serversInfo.GridSendKey;
-            GridParams["UUID"] = regionInfo.RegionID.ToStringHyphenated();
+            GridParams["UUID"] = regionInfo.RegionID.ToString();
             GridParams["sim_ip"] = regionInfo.ExternalHostName;
             GridParams["sim_port"] = regionInfo.InternalEndPoint.Port.ToString();
             GridParams["region_locx"] = regionInfo.RegionLocX.ToString();
@@ -111,7 +111,7 @@ namespace OpenSim.Region.Communications.OGS1
             GridParams["sim_name"] = regionInfo.RegionName;
             GridParams["http_port"] = serversInfo.HttpListenerPort.ToString();
             GridParams["remoting_port"] = NetworkServersInfo.RemotingListenerPort.ToString();
-            GridParams["map-image-id"] = regionInfo.EstateSettings.terrainImageID.ToStringHyphenated();
+            GridParams["map-image-id"] = regionInfo.EstateSettings.terrainImageID.ToString();
 
             // Package into an XMLRPC Request
             ArrayList SendParams = new ArrayList();
@@ -191,7 +191,7 @@ namespace OpenSim.Region.Communications.OGS1
         {
             RegionInfo regionInfo;
             Hashtable requestData = new Hashtable();
-            requestData["region_UUID"] = Region_UUID.ToStringHyphenated();
+            requestData["region_UUID"] = Region_UUID.ToString();
             requestData["authkey"] = serversInfo.GridSendKey;
             ArrayList SendParams = new ArrayList();
             SendParams.Add(requestData);
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
index 709a227..6c1f77e 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs
@@ -63,7 +63,7 @@ namespace OpenSim.Region.Communications.OGS1
         {
             try
             {
-                Console.WriteLine("Requesting Inventory from Inventory server ( " + _inventoryServerUrl + "/GetInventory/" +" ) for " + userID.ToStringHyphenated());
+                Console.WriteLine("Requesting Inventory from Inventory server ( " + _inventoryServerUrl + "/GetInventory/" +" ) for " + userID.ToString());
                 RestObjectPosterResponse<InventoryCollection> requester = new RestObjectPosterResponse<InventoryCollection>();
                 requester.ResponseCallback = InventoryResponse;
 
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
index d26da90..c1e6ba6 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
@@ -118,7 +118,7 @@ namespace OpenSim.Region.Communications.OGS1
             try
             {
                 Hashtable param = new Hashtable();
-                param["queryid"] = (string)queryID.ToStringHyphenated();
+                param["queryid"] = (string)queryID.ToString();
                 param["avquery"] = objAlphaNumericPattern.Replace(query, "");
                 IList parameters = new ArrayList();
                 parameters.Add(param);
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 9821906..753d0cf 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -241,7 +241,7 @@ namespace OpenSim.Region.Environment.Scenes
         {
             MainLog.Instance.Verbose(
                 "INVENTORY", 
-                "Moving item for " + remoteClient.AgentId.ToStringHyphenated());
+                "Moving item for " + remoteClient.AgentId.ToString());
             
             CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
             if (userInfo == null)
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 474d8d5..01d6c5a 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -88,7 +88,7 @@ namespace OpenSim.Region.Environment.Scenes
         protected SceneCommunicationService m_sceneGridService;
         protected SceneXmlLoader m_sceneXmlLoader;
 
-        protected Dictionary<LLUUID, Caps> m_capsHandlers = new Dictionary<LLUUID, Caps>();
+        protected Dictionary<LLUUID, OpenSim.Region.Capabilities.Caps> m_capsHandlers = new Dictionary<LLUUID, OpenSim.Region.Capabilities.Caps>();
         protected BaseHttpServer httpListener;
 
         protected Dictionary<string, IRegionModule> Modules = new Dictionary<string, IRegionModule>();
@@ -990,6 +990,7 @@ namespace OpenSim.Region.Environment.Scenes
             }
         }
 
+/* Tree has been removed from libSL
         public void AddTree(LLVector3 scale, LLQuaternion rotation, LLVector3 position,
            libsecondlife.ObjectManager.Tree treeType, bool newTree)
         {
@@ -1001,7 +1002,7 @@ namespace OpenSim.Region.Environment.Scenes
             treeShape.State = (byte)treeType;
             AddNewPrim(LLUUID.Random(), position, rotation, treeShape);
         }
-
+*/
         public void RemovePrim(uint localID, LLUUID avatar_deleter)
         {
             m_innerScene.RemovePrim(localID, avatar_deleter);
@@ -1323,8 +1324,8 @@ namespace OpenSim.Region.Environment.Scenes
             {
                 if (agent.CapsPath != "")
                 {
-                    Caps cap =
-                        new Caps(AssetCache, httpListener, m_regInfo.ExternalHostName, httpListener.Port,
+                    OpenSim.Region.Capabilities.Caps cap =
+                        new OpenSim.Region.Capabilities.Caps(AssetCache, httpListener, m_regInfo.ExternalHostName, httpListener.Port,
                                  agent.CapsPath, agent.AgentID, m_dumpAssetsToFile);
 
                     Util.SetCapsURL(agent.AgentID, "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() +
@@ -1335,7 +1336,7 @@ namespace OpenSim.Region.Environment.Scenes
                     if (m_capsHandlers.ContainsKey(agent.AgentID))
                     {
                         //MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " +
-                        //    agent.AgentID.ToStringHyphenated());
+                        //    agent.AgentID.ToString());
                         try
                         {
                             m_capsHandlers[agent.AgentID] = cap;
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 5e5b8b5..f3be4bd 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -1030,8 +1030,8 @@ namespace OpenSim.Region.Environment.Scenes
             foreach (TaskInventoryItem item in TaskInventory.Values)
             {
                 invString.AddItemStart();
-                invString.AddNameValueLine("item_id", item.item_id.ToStringHyphenated());
-                invString.AddNameValueLine("parent_id", item.parent_id.ToStringHyphenated());
+                invString.AddNameValueLine("item_id", item.item_id.ToString());
+                invString.AddNameValueLine("parent_id", item.parent_id.ToString());
 
                 invString.AddPermissionsStart();
                 invString.AddNameValueLine("base_mask", "0x7FFFFFFF");
@@ -1039,13 +1039,13 @@ namespace OpenSim.Region.Environment.Scenes
                 invString.AddNameValueLine("group_mask", "0x7FFFFFFF");
                 invString.AddNameValueLine("everyone_mask", "0x7FFFFFFF");
                 invString.AddNameValueLine("next_owner_mask", "0x7FFFFFFF");
-                invString.AddNameValueLine("creator_id", item.creator_id.ToStringHyphenated());
-                invString.AddNameValueLine("owner_id", item.owner_id.ToStringHyphenated());
-                invString.AddNameValueLine("last_owner_id", item.last_owner_id.ToStringHyphenated());
-                invString.AddNameValueLine("group_id", item.group_id.ToStringHyphenated());
+                invString.AddNameValueLine("creator_id", item.creator_id.ToString());
+                invString.AddNameValueLine("owner_id", item.owner_id.ToString());
+                invString.AddNameValueLine("last_owner_id", item.last_owner_id.ToString());
+                invString.AddNameValueLine("group_id", item.group_id.ToString());
                 invString.AddSectionEnd();
 
-                invString.AddNameValueLine("asset_id", item.asset_id.ToStringHyphenated());
+                invString.AddNameValueLine("asset_id", item.asset_id.ToString());
                 invString.AddNameValueLine("type", item.type);
                 invString.AddNameValueLine("inv_type", item.inv_type);
                 invString.AddNameValueLine("flags", "0x00");
@@ -1255,12 +1255,12 @@ namespace OpenSim.Region.Environment.Scenes
                     tex.FaceTextures[i].RGBA = tmpcolor;
                 }
             }
-            tmpcolor = tex.DefaultTexture.RGBA;
+            tmpcolor = tex.FaceTextures[0].RGBA;
             tmpcolor.A = tmpcolor.A * 255;
             tmpcolor.R = tmpcolor.R * 255;
             tmpcolor.G = tmpcolor.G * 255;
             tmpcolor.B = tmpcolor.B * 255;
-            tex.DefaultTexture.RGBA = tmpcolor; 
+            tex.FaceTextures[0].RGBA = tmpcolor; 
             UpdateTextureEntry(tex.ToBytes());
         }
 
@@ -1544,8 +1544,8 @@ namespace OpenSim.Region.Environment.Scenes
             public InventoryStringBuilder(LLUUID folderID, LLUUID parentID)
             {
                 BuildString += "\tinv_object\t0\n\t{\n";
-                AddNameValueLine("obj_id", folderID.ToStringHyphenated());
-                AddNameValueLine("parent_id", parentID.ToStringHyphenated());
+                AddNameValueLine("obj_id", folderID.ToString());
+                AddNameValueLine("parent_id", parentID.ToString());
                 AddNameValueLine("type", "category");
                 AddNameValueLine("name", "Contents");
                 AddSectionEnd();
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 62abefc..a221243 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -1033,11 +1033,7 @@ namespace OpenSim.Region.Environment.Scenes
         {
             LLVector3 pos = m_pos;
             LLVector3 vel = Velocity;
-            LLQuaternion rot;
-            rot.X = m_bodyRot.x;
-            rot.Y = m_bodyRot.y;
-            rot.Z = m_bodyRot.z;
-            rot.W = m_bodyRot.w;
+            LLQuaternion rot=new LLQuaternion(m_bodyRot.x, m_bodyRot.y, m_bodyRot.z, m_bodyRot.w);
             remoteClient.SendAvatarTerseUpdate(m_regionHandle, 64096, LocalId, new LLVector3(pos.X, pos.Y, pos.Z),
                                                new LLVector3(vel.X, vel.Y, vel.Z), rot);
         }
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs
index 2d684d1..09b7f48 100644
--- a/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs
+++ b/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Region.ExtensionsScriptModule.CSharp.Examples
                 {
                     SceneObject root = obj.Value;
 
-                    sequence += "NEWOBJ::" + obj.Key.ToStringHyphenated() + "\n";
+                    sequence += "NEWOBJ::" + obj.Key.ToString() + "\n";
 
                     string rootPrim = processPrimitiveToString(root.rootPrimitive);
 
@@ -91,4 +91,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.CSharp.Examples
             return "";
         }
     }
-}
\ No newline at end of file
+}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
index 832ccf1..1cb307f 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
@@ -471,11 +471,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             }
             else if (face == -1)
             {
-                texcolor = tex.DefaultTexture.RGBA;
-                texcolor.R = (float)Math.Abs(color.x - 1);
-                texcolor.G = (float)Math.Abs(color.y - 1);
-                texcolor.B = (float)Math.Abs(color.z - 1);
-                tex.DefaultTexture.RGBA = texcolor;
                 for (uint i = 0; i < 32; i++)
                 {
                     if (tex.FaceTextures[i] != null)
@@ -499,7 +494,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
             if (face == -1) // TMP: Until we can determine number of sides, ALL_SIDES (-1) will return default color
             {
-                return (double)((tex.DefaultTexture.RGBA.A * 255) / 255);
+                return (double)((tex.FaceTextures[0].RGBA.A * 255) / 255);
             }
             if (face > -1)
             {
@@ -522,9 +517,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             }
             else if (face == -1)
             {
-                texcolor = tex.DefaultTexture.RGBA;
-                texcolor.A = (float)Math.Abs(alpha - 1);
-                tex.DefaultTexture.RGBA = texcolor;
                 for (int i = 0; i < 32; i++)
                 {
                     if (tex.FaceTextures[i] != null)
@@ -548,7 +540,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             LSL_Types.Vector3 rgb;
             if (face == -1) // TMP: Until we can determine number of sides, ALL_SIDES (-1) will return default color
             {
-                texcolor = tex.DefaultTexture.RGBA;
+                texcolor = tex.FaceTextures[0].RGBA;
                 rgb.x = (255 - (texcolor.R * 255)) / 255;
                 rgb.y = (255 - (texcolor.G * 255)) / 255;
                 rgb.z = (255 - (texcolor.B * 255)) / 255;
@@ -586,7 +578,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
                         tex.FaceTextures[i].TextureID = new LLUUID(texture);
                     }
                 }
-                tex.DefaultTexture.TextureID = new LLUUID(texture);
                 m_host.UpdateTexture(tex);
                 return;
             }
@@ -617,8 +608,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
                     }
                 }
-                tex.DefaultTexture.RepeatU = (float)u;
-                tex.DefaultTexture.RepeatV = (float)v;
                 m_host.UpdateTexture(tex);
                 return;
             }
@@ -648,8 +637,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
                         tex.FaceTextures[i].OffsetV = (float)v;
                     }
                 }
-                tex.DefaultTexture.OffsetU = (float)u;
-                tex.DefaultTexture.OffsetV = (float)v;
                 m_host.UpdateTexture(tex);
                 return;
             }
@@ -677,7 +664,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
                         tex.FaceTextures[i].Rotation = (float)rotation;
                     }
                 }
-                tex.DefaultTexture.Rotation = (float)rotation;
                 m_host.UpdateTexture(tex);
                 return;
             }
@@ -696,7 +682,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             {
                 LLObject.TextureEntryFace texface;
                 texface = tex.GetFace((uint)face);
-                return texface.TextureID.ToStringHyphenated();
+                return texface.TextureID.ToString();
             }
             NotImplemented("llGetTexture");
             return "";
@@ -1035,7 +1021,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public string llGetOwner()
         {
-            return m_host.ObjectOwner.ToStringHyphenated();
+            return m_host.ObjectOwner.ToString();
         }
 
         public void llInstantMessage(string user, string message)
@@ -1063,7 +1049,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public string llGetKey()
         {
-            return m_host.UUID.ToStringHyphenated();
+            return m_host.UUID.ToString();
         }
 
         public void llSetBuoyancy(double buoyancy)
@@ -1277,7 +1263,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum);
             if (part != null)
             {
-                return part.UUID.ToStringHyphenated();
+                return part.UUID.ToString();
             }
             else
             {
@@ -1621,11 +1607,11 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             {
                 return "00000000-0000-0000-0000-000000000000";
             }
-            //return OpenSim.Framework.ToStringHyphenated(src[index]);
+            //return OpenSim.Framework.ToString(src[index]);
             LLUUID tmpkey;
             if (LLUUID.TryParse(src.Data[index].ToString(), out tmpkey))
             {
-                return tmpkey.ToStringHyphenated();
+                return tmpkey.ToString();
             }
             else
             {
@@ -2380,7 +2366,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public string llGetCreator()
         {
-            return m_host.ObjectCreator.ToStringHyphenated();
+            return m_host.ObjectCreator.ToString();
         }
 
         public string llGetTimestamp()
@@ -2807,14 +2793,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
                 LLUUID createdTexture =
                     textureManager.AddDynamicTextureURL(World.RegionInfo.RegionID, m_host.UUID, contentType, url,
                                                         extraParams, timer);
-                return createdTexture.ToStringHyphenated();
+                return createdTexture.ToString();
             }
             else
             {
                 //TODO update existing dynamic textures
             }
 
-            return LLUUID.Zero.ToStringHyphenated();
+            return LLUUID.Zero.ToString();
         }
 
         private void NotImplemented(string Command)
-- 
cgit v1.1