From 05da73c300b8ed2105febb8de8f2d302b8dbe599 Mon Sep 17 00:00:00 2001 From: dr scofield (aka dirk husemann) Date: Thu, 1 Oct 2009 12:01:41 +0200 Subject: fixing LandDataSerializer (yeah! for testcases) --- .../Serialization/External/LandDataSerializer.cs | 36 +++++++++++++--------- 1 file changed, 21 insertions(+), 15 deletions(-) (limited to 'OpenSim/Framework/Serialization/External/LandDataSerializer.cs') diff --git a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs index e9af2ca..e980945 100644 --- a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs +++ b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs @@ -91,20 +91,26 @@ namespace OpenSim.Framework.Serialization.External landData.OwnerID = UUID.Parse( xtr.ReadElementString("OwnerID")); landData.ParcelAccessList = new List(); - xtr.ReadStartElement("ParcelAccessList"); - while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) - { - ParcelManager.ParcelAccessEntry pae; + xtr.Read(); + if (xtr.Name != "ParcelAccessList") + throw new XmlException(String.Format("Expected \"ParcelAccessList\" element but got \"{0}\"", xtr.Name)); - xtr.ReadStartElement("ParcelAccessEntry"); - pae.AgentID = UUID.Parse( xtr.ReadElementString("AgentID")); - pae.Time = Convert.ToDateTime( xtr.ReadElementString("Time")); - pae.Flags = (AccessList)Convert.ToUInt32( xtr.ReadElementString("AccessList")); - xtr.ReadEndElement(); + if (!xtr.IsEmptyElement) + { + while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) + { + ParcelManager.ParcelAccessEntry pae; - landData.ParcelAccessList.Add(pae); + xtr.ReadStartElement("ParcelAccessEntry"); + pae.AgentID = UUID.Parse( xtr.ReadElementString("AgentID")); + pae.Time = Convert.ToDateTime( xtr.ReadElementString("Time")); + pae.Flags = (AccessList)Convert.ToUInt32( xtr.ReadElementString("AccessList")); + xtr.ReadEndElement(); + + landData.ParcelAccessList.Add(pae); + } } - xtr.ReadEndElement(); + xtr.Read(); landData.PassHours = Convert.ToSingle( xtr.ReadElementString("PassHours")); landData.PassPrice = Convert.ToInt32( xtr.ReadElementString("PassPrice")); @@ -135,7 +141,7 @@ namespace OpenSim.Framework.Serialization.External xtw.WriteElementString("Area", Convert.ToString(landData.Area)); xtw.WriteElementString("AuctionID", Convert.ToString(landData.AuctionID)); xtw.WriteElementString("AuthBuyerID", landData.AuthBuyerID.ToString()); - xtw.WriteElementString("Category", Convert.ToString(landData.Category)); + xtw.WriteElementString("Category", Convert.ToString((sbyte)landData.Category)); xtw.WriteElementString("ClaimDate", Convert.ToString(landData.ClaimDate)); xtw.WriteElementString("ClaimPrice", Convert.ToString(landData.ClaimPrice)); xtw.WriteElementString("GlobalID", landData.GlobalID.ToString()); @@ -143,10 +149,10 @@ namespace OpenSim.Framework.Serialization.External xtw.WriteElementString("IsGroupOwned", Convert.ToString(landData.IsGroupOwned)); xtw.WriteElementString("Bitmap", Convert.ToBase64String(landData.Bitmap)); xtw.WriteElementString("Description", landData.Description); - xtw.WriteElementString("Flags", Convert.ToString(landData.Flags)); - xtw.WriteElementString("LandingType", Convert.ToString(landData.LandingType)); + xtw.WriteElementString("Flags", Convert.ToString((uint)landData.Flags)); + xtw.WriteElementString("LandingType", Convert.ToString((byte)landData.LandingType)); xtw.WriteElementString("Name", landData.Name); - xtw.WriteElementString("Status", Convert.ToString(landData.Status)); + xtw.WriteElementString("Status", Convert.ToString((sbyte)landData.Status)); xtw.WriteElementString("LocalID", landData.LocalID.ToString()); xtw.WriteElementString("MediaAutoScale", Convert.ToString(landData.MediaAutoScale)); xtw.WriteElementString("MediaID", landData.MediaID.ToString()); -- cgit v1.1