If serialized scene object XML has a SavedScriptState with no UUID, then read past the innerXML instead of wrongly continously looping on the same element.

Addresses http://opensimulator.org/mantis/view.php?id=7437
inv-download
Justin Clark-Casey (justincc) 2015-02-11 00:53:56 +00:00
parent 53b23a9adc
commit dd6f560c05
1 changed files with 5 additions and 1 deletions

View File

@ -924,13 +924,17 @@ namespace OpenSim.Region.Framework.Scenes
string uuid = reader.GetAttribute("UUID"); string uuid = reader.GetAttribute("UUID");
// Even if there is no UUID attribute for some strange reason, we must always read the inner XML
// so we don't continually keep checking the same SavedScriptedState element.
string innerXml = reader.ReadInnerXml();
if (uuid != null) if (uuid != null)
{ {
// m_log.DebugFormat("[SCENE OBJECT GROUP]: Found state for item ID {0} in object {1}", uuid, Name); // m_log.DebugFormat("[SCENE OBJECT GROUP]: Found state for item ID {0} in object {1}", uuid, Name);
UUID itemid = new UUID(uuid); UUID itemid = new UUID(uuid);
if (itemid != UUID.Zero) if (itemid != UUID.Zero)
m_savedScriptState[itemid] = reader.ReadInnerXml(); m_savedScriptState[itemid] = innerXml;
} }
else else
{ {