aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2015-01-22 23:12:10 +0000
committerJustin Clark-Casey (justincc)2015-01-23 00:27:57 +0000
commitd0a2ea0857c1342a42db31bce282c62c88c57e55 (patch)
treeb727ce53574216d12cc6549e74982ce5de850654 /OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
parentMerge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff)
downloadopensim-SC-d0a2ea0857c1342a42db31bce282c62c88c57e55.zip
opensim-SC-d0a2ea0857c1342a42db31bce282c62c88c57e55.tar.gz
opensim-SC-d0a2ea0857c1342a42db31bce282c62c88c57e55.tar.bz2
opensim-SC-d0a2ea0857c1342a42db31bce282c62c88c57e55.tar.xz
Fix regression where the stored state of every second script in an object rezzed from inventory (e.g. attachments) was no longer loaded.
Likely a regression since f132f642 (2014-08-28) Relates to http://opensimulator.org/mantis/view.php?id=7278
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs34
1 files changed, 21 insertions, 13 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index ec37836..19e557f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -911,28 +911,36 @@ namespace OpenSim.Region.Framework.Scenes
911 911
912 public void LoadScriptState(XmlReader reader) 912 public void LoadScriptState(XmlReader reader)
913 { 913 {
914// m_log.DebugFormat("[SCENE OBJECT GROUP]: Looking for script state for {0} in {1}", Name); 914// m_log.DebugFormat("[SCENE OBJECT GROUP]: Looking for script state for {0}", Name);
915 915
916 while (reader.ReadToFollowing("SavedScriptState")) 916 while (true)
917 { 917 {
918// m_log.DebugFormat("[SCENE OBJECT GROUP]: Loading script state for {0}", Name); 918 if (reader.Name == "SavedScriptState" && reader.NodeType == XmlNodeType.Element)
919 {
920// m_log.DebugFormat("[SCENE OBJECT GROUP]: Loading script state for {0}", Name);
919 921
920 if (m_savedScriptState == null) 922 if (m_savedScriptState == null)
921 m_savedScriptState = new Dictionary<UUID, string>(); 923 m_savedScriptState = new Dictionary<UUID, string>();
922 924
923 string uuid = reader.GetAttribute("UUID"); 925 string uuid = reader.GetAttribute("UUID");
924 926
925 if (uuid != null) 927 if (uuid != null)
926 { 928 {
927// m_log.DebugFormat("[SCENE OBJECT GROUP]: Found state for item ID {0} in object {1}", uuid, Name); 929// m_log.DebugFormat("[SCENE OBJECT GROUP]: Found state for item ID {0} in object {1}", uuid, Name);
928 930
929 UUID itemid = new UUID(uuid); 931 UUID itemid = new UUID(uuid);
930 if (itemid != UUID.Zero) 932 if (itemid != UUID.Zero)
931 m_savedScriptState[itemid] = reader.ReadInnerXml(); 933 m_savedScriptState[itemid] = reader.ReadInnerXml();
934 }
935 else
936 {
937 m_log.WarnFormat("[SCENE OBJECT GROUP]: SavedScriptState element had no UUID in object {0}", Name);
938 }
932 } 939 }
933 else 940 else
934 { 941 {
935 m_log.WarnFormat("[SCENE OBJECT GROUP]: SavedScriptState element had no UUID in object {0}", Name); 942 if (!reader.Read())
943 break;
936 } 944 }
937 } 945 }
938 } 946 }