Added m_syncEnabled in SceneObjectPart to guard again modifying any syncinfo (timestamp, etc) while

deserializing and building SOP/SOG out of sync message.
dsg
Huaiyu (Kitty) Liu 2011-02-07 14:15:33 -08:00
parent c929348668
commit 6cb8b01bef
1 changed files with 14 additions and 8 deletions

View File

@ -776,7 +776,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ {
SetScriptAccessPin(value); SetScriptAccessPin(value);
UpdateBucketSyncInfo("ScriptAccessPin"); //UpdateBucketSyncInfo("ScriptAccessPin");
//m_scriptAccessPin = (int)value; //m_scriptAccessPin = (int)value;
} }
} }
@ -1207,7 +1207,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ {
SetAcceleration(value); SetAcceleration(value);
UpdateBucketSyncInfo("Acceleration"); //UpdateBucketSyncInfo("Acceleration");
//m_acceleration = value; //m_acceleration = value;
} }
} }
@ -1223,7 +1223,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ {
SetDescription(value); SetDescription(value);
UpdateBucketSyncInfo("Description"); //UpdateBucketSyncInfo("Description");
/* /*
m_description = value; m_description = value;
PhysicsActor actor = PhysActor; PhysicsActor actor = PhysActor;
@ -1254,7 +1254,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ {
SetColor(value); SetColor(value);
UpdateBucketSyncInfo("Color"); //UpdateBucketSyncInfo("Color");
//m_color = value; //m_color = value;
/* ScheduleFullUpdate() need not be called b/c after /* ScheduleFullUpdate() need not be called b/c after
@ -1283,7 +1283,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ {
SetText(value, false); SetText(value, false);
UpdateBucketSyncInfo("Text"); //UpdateBucketSyncInfo("Text");
//m_text = value; //m_text = value;
} }
} }
@ -1301,7 +1301,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ {
SetSitName(value); SetSitName(value);
UpdateBucketSyncInfo("SitName"); //UpdateBucketSyncInfo("SitName");
//m_sitName = value; //m_sitName = value;
} }
} }
@ -1317,7 +1317,7 @@ namespace OpenSim.Region.Framework.Scenes
set set
{ {
SetTouchName(value); SetTouchName(value);
UpdateBucketSyncInfo("TouchName"); //UpdateBucketSyncInfo("TouchName");
//m_touchName = value; //m_touchName = value;
} }
} }
@ -5861,6 +5861,10 @@ namespace OpenSim.Region.Framework.Scenes
//private static Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>(); //private static Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
private Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>(); private Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
//Define this as a guard to not to fill in any sync info when not desired, i.e. while de-serializing and building SOP and SOG, where
//property set functions will be called and might trigger UpdateBucketSyncInfo() if not guarded carefully.
private bool m_syncEnabled = false;
public static void InitializeBucketInfo(Dictionary<string, string> propertyBucketMap, List<string> bucketNames, string actorID) public static void InitializeBucketInfo(Dictionary<string, string> propertyBucketMap, List<string> bucketNames, string actorID)
{ {
m_primPropertyBucketMap = propertyBucketMap; m_primPropertyBucketMap = propertyBucketMap;
@ -5988,6 +5992,8 @@ namespace OpenSim.Region.Framework.Scenes
RegisterBucketUpdateProcessor(); RegisterBucketUpdateProcessor();
m_BucketUpdateProcessorRegistered = true; m_BucketUpdateProcessorRegistered = true;
} }
m_syncEnabled = true;
} }
/// <summary> /// <summary>
@ -5996,7 +6002,7 @@ namespace OpenSim.Region.Framework.Scenes
/// <param name="propertyName">Name of the property. Make sure the spelling is consistent with what are defined in PropertyList</param> /// <param name="propertyName">Name of the property. Make sure the spelling is consistent with what are defined in PropertyList</param>
public void UpdateBucketSyncInfo(string propertyName) public void UpdateBucketSyncInfo(string propertyName)
{ {
if (m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count>0) if (m_syncEnabled && m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count>0)
{ {
//int bucketIndex = m_primPropertyBucketMap[propertyName]; //int bucketIndex = m_primPropertyBucketMap[propertyName];
string bucketName = m_primPropertyBucketMap[propertyName]; string bucketName = m_primPropertyBucketMap[propertyName];