From 627d1a42fe11937a1c35659ca0fad6f89754f654 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Sat, 23 Oct 2010 20:39:41 -0700
Subject: Added inner exception handling in Shape deserialization processing,
so that the whole Shape processing returns a valid Shape object.
---
.../Scenes/Serialization/SceneObjectSerializer.cs | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
index 044b599..95908fc 100644
--- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
+++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
@@ -1426,7 +1426,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
reader.ReadStartElement(name);
vec.X = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // X or x
- vec.Y = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // Y or Y
+ vec.Y = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // Y or y
vec.Z = reader.ReadElementContentAsFloat(reader.Name, String.Empty); // Z or z
reader.ReadEndElement();
@@ -1501,15 +1501,28 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
reader.ReadStartElement(name, String.Empty); // Shape
+ string nodeName = string.Empty;
while (reader.NodeType != XmlNodeType.EndElement)
{
+ nodeName = reader.Name;
//m_log.DebugFormat("[XXX] Processing: {0}", reader.Name);
ShapeXmlProcessor p = null;
if (m_ShapeXmlProcessors.TryGetValue(reader.Name, out p))
- p(shape, reader);
+ {
+ try
+ {
+ p(shape, reader);
+ }
+ catch (Exception e)
+ {
+ m_log.DebugFormat("[SceneObjectSerializer]: exception while parsing Shape {0}: {1}", nodeName, e);
+ if (reader.NodeType == XmlNodeType.EndElement)
+ reader.Read();
+ }
+ }
else
{
-// m_log.DebugFormat("[SceneObjectSerializer]: caught unknown element in Shape {0}", reader.Name);
+ // m_log.DebugFormat("[SceneObjectSerializer]: caught unknown element in Shape {0}", reader.Name);
reader.ReadOuterXml();
}
}
--
cgit v1.1
From 852c61aaa6e5a2e41e7c1724ee974382a55007ec Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 24 Oct 2010 18:19:48 +0200
Subject: Add PRIM_NAME, PRIM_DESC and PRIM_ROT_LOCAL
---
.../Shared/Api/Implementation/LSL_Api.cs | 27 ++++++++++++++++++++++
.../Shared/Api/Runtime/LSL_Constants.cs | 3 +++
2 files changed, 30 insertions(+)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 59a3618..1a13dea 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -7268,6 +7268,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.SetText(primText, av3, Util.Clip((float)primTextAlpha, 0.0f, 1.0f));
break;
+ case (int)ScriptBaseClass.PRIM_NAME:
+ if (remain < 1)
+ return;
+ string primName = rules.GetLSLStringItem(idx++);
+ part.Name = primName;
+ break;
+ case (int)ScriptBaseClass.PRIM_DESC:
+ if (remain < 1)
+ return;
+ string primDesc = rules.GetLSLStringItem(idx++);
+ part.Description = primDesc;
+ break;
+ case (int)ScriptBaseClass.PRIM_ROT_LOCAL:
+ if (remain < 1)
+ return;
+ LSL_Rotation lr = rules.GetQuaternionItem(idx++);
+ SetRot(part, Rot2Quaternion(lr));
+ break;
}
}
}
@@ -7813,6 +7831,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
textColor.B));
res.Add(new LSL_Float(textColor.A));
break;
+ case (int)ScriptBaseClass.PRIM_NAME:
+ res.Add(part.Name);
+ break;
+ case (int)ScriptBaseClass.PRIM_DESC:
+ res.Add(part.Description);
+ break;
+ case (int)ScriptBaseClass.PRIM_ROT_LOCAL:
+ res.Add(new LSL_Rotation(part.RotationOffset.X, part.RotationOffset.Y, part.RotationOffset.Z, part.RotationOffset.W));
+ break;
}
}
return res;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index 5da6bb9..b96e977 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -316,6 +316,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public const int PRIM_POINT_LIGHT = 23; // Huh?
public const int PRIM_GLOW = 25;
public const int PRIM_TEXT = 26;
+ public const int PRIM_NAME = 27;
+ public const int PRIM_DESC = 28;
+ public const int PRIM_ROT_LOCAL = 29;
public const int PRIM_TEXGEN_DEFAULT = 0;
public const int PRIM_TEXGEN_PLANAR = 1;
--
cgit v1.1
From c74c1620a15fcf032a074ed2b979a06f2913e08b Mon Sep 17 00:00:00 2001
From: Latif Khalifa
Date: Sun, 24 Oct 2010 22:47:53 +0200
Subject: * Updated libomv to r3461 Main reason for upgrade is to revert API
change that was introduced in order to support headerless binary LLSD
decoding needed for deserialization of the mesh assets, which turned out to
be unnecessary as we can transparently decode both kinds.
---
OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 4 ++--
bin/OpenMetaverse.Rendering.Meshmerizer.dll | Bin 20480 -> 20480 bytes
bin/OpenMetaverse.StructuredData.XML | 12 ++++++------
bin/OpenMetaverse.StructuredData.dll | Bin 102400 -> 102400 bytes
bin/OpenMetaverse.XML | 9 +++++----
bin/OpenMetaverse.dll | Bin 1716224 -> 1716224 bytes
bin/OpenMetaverseTypes.dll | Bin 114688 -> 114688 bytes
7 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 1257804..d770ad1 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -287,7 +287,7 @@ namespace OpenSim.Region.Physics.Meshing
long start = 0;
using (MemoryStream data = new MemoryStream(primShape.SculptData))
{
- meshOsd = (OSDMap)OSDParser.DeserializeLLSDBinary(data, true);
+ meshOsd = (OSDMap)OSDParser.DeserializeLLSDBinary(data);
start = data.Position;
}
@@ -324,7 +324,7 @@ namespace OpenSim.Region.Physics.Meshing
byte[] decompressedBuf = outMs.GetBuffer();
- decodedMeshOsd = OSDParser.DeserializeLLSDBinary(decompressedBuf, true);
+ decodedMeshOsd = OSDParser.DeserializeLLSDBinary(decompressedBuf);
}
}
}
diff --git a/bin/OpenMetaverse.Rendering.Meshmerizer.dll b/bin/OpenMetaverse.Rendering.Meshmerizer.dll
index 0160d21..f89ac5a 100755
Binary files a/bin/OpenMetaverse.Rendering.Meshmerizer.dll and b/bin/OpenMetaverse.Rendering.Meshmerizer.dll differ
diff --git a/bin/OpenMetaverse.StructuredData.XML b/bin/OpenMetaverse.StructuredData.XML
index 2a0426c..f5842c8 100644
--- a/bin/OpenMetaverse.StructuredData.XML
+++ b/bin/OpenMetaverse.StructuredData.XML
@@ -135,17 +135,17 @@
-
+ Deserializes binary LLSD
-
-
+ Serialized data
+ OSD containting deserialized data
-
+ Deserializes binary LLSD
-
-
+ Stream to read the data from
+ OSD containting deserialized data
diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll
index c1e54fa..33b19ca 100644
Binary files a/bin/OpenMetaverse.StructuredData.dll and b/bin/OpenMetaverse.StructuredData.dll differ
diff --git a/bin/OpenMetaverse.XML b/bin/OpenMetaverse.XML
index 56f0c87..f5bda4b 100644
--- a/bin/OpenMetaverse.XML
+++ b/bin/OpenMetaverse.XML
@@ -10318,12 +10318,13 @@
target avatars to lure
custom message to send with invitation
-
+
Respond to a teleport lure by either accepting it and initiating
the teleport, or denying it
of the avatar sending the lure
+ IM session of the incoming lure request
true to accept the lure, false to decline it
@@ -19866,9 +19867,6 @@
Total number of wearables per bake layer
-
- Total number of textures on an avatar, baked or not
-
Mapping between BakeType and AvatarTextureIndex
@@ -20315,6 +20313,9 @@
Tint that should be applied to the texture
+
+ Where on avatar does this texture belong
+
Contains the Event data returned from the data server from an AgentWearablesRequest
diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll
index a07d64f..f5952b4 100644
Binary files a/bin/OpenMetaverse.dll and b/bin/OpenMetaverse.dll differ
diff --git a/bin/OpenMetaverseTypes.dll b/bin/OpenMetaverseTypes.dll
index 2d7a372..f4f701b 100644
Binary files a/bin/OpenMetaverseTypes.dll and b/bin/OpenMetaverseTypes.dll differ
--
cgit v1.1