aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/XEngine/XEngine.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs32
1 files changed, 28 insertions, 4 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 3bdbdfb..c8f6559 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -1359,9 +1359,23 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1359 string xml = instance.GetXMLState(); 1359 string xml = instance.GetXMLState();
1360 1360
1361 XmlDocument sdoc = new XmlDocument(); 1361 XmlDocument sdoc = new XmlDocument();
1362 sdoc.LoadXml(xml); 1362 bool loadedState = true;
1363 XmlNodeList rootL = sdoc.GetElementsByTagName("ScriptState"); 1363 try
1364 XmlNode rootNode = rootL[0]; 1364 {
1365 sdoc.LoadXml(xml);
1366 }
1367 catch (System.Xml.XmlException e)
1368 {
1369 loadedState = false;
1370 }
1371
1372 XmlNodeList rootL = null;
1373 XmlNode rootNode = null;
1374 if (loadedState)
1375 {
1376 rootL = sdoc.GetElementsByTagName("ScriptState");
1377 rootNode = rootL[0];
1378 }
1365 1379
1366 // Create <State UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"> 1380 // Create <State UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
1367 XmlDocument doc = new XmlDocument(); 1381 XmlDocument doc = new XmlDocument();
@@ -1377,8 +1391,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1377 stateData.Attributes.Append(engineName); 1391 stateData.Attributes.Append(engineName);
1378 doc.AppendChild(stateData); 1392 doc.AppendChild(stateData);
1379 1393
1394 XmlNode xmlstate = null;
1395
1380 // Add <ScriptState>...</ScriptState> 1396 // Add <ScriptState>...</ScriptState>
1381 XmlNode xmlstate = doc.ImportNode(rootNode, true); 1397 if (loadedState)
1398 {
1399 xmlstate = doc.ImportNode(rootNode, true);
1400 }
1401 else
1402 {
1403 xmlstate = doc.CreateElement("", "ScriptState", "");
1404 }
1405
1382 stateData.AppendChild(xmlstate); 1406 stateData.AppendChild(xmlstate);
1383 1407
1384 string assemName = instance.GetAssemblyName(); 1408 string assemName = instance.GetAssemblyName();