From 950b605b429e95ffef8a184ff0218a9d36ab608a Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sun, 6 Jan 2019 20:10:43 +0000 Subject: more changes on scenegraph etc --- OpenSim/Framework/MapAndArray.cs | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) (limited to 'OpenSim/Framework/MapAndArray.cs') diff --git a/OpenSim/Framework/MapAndArray.cs b/OpenSim/Framework/MapAndArray.cs index a3ce55e..41874d0 100644 --- a/OpenSim/Framework/MapAndArray.cs +++ b/OpenSim/Framework/MapAndArray.cs @@ -41,8 +41,6 @@ namespace OpenSim.Framework { private Dictionary m_dict; private TValue[] m_array; - private int m_lastArrayVersion; - private int m_arrayVersion; /// Number of values currently stored in the collection public int Count { get { return m_dict.Count; } } @@ -59,9 +57,7 @@ namespace OpenSim.Framework public MapAndArray() { m_dict = new Dictionary(); - m_array = new TValue[0]; - m_lastArrayVersion = 0; - m_arrayVersion = 0; + m_array = null; } /// @@ -71,9 +67,7 @@ namespace OpenSim.Framework public MapAndArray(int capacity) { m_dict = new Dictionary(capacity); - m_array = new TValue[0]; - m_lastArrayVersion = 0; - m_arrayVersion = 0; + m_array = null; } /// @@ -91,7 +85,7 @@ namespace OpenSim.Framework bool containedKey = m_dict.ContainsKey(key); m_dict[key] = value; - ++m_arrayVersion; + m_array = null; return !containedKey; } @@ -109,7 +103,7 @@ namespace OpenSim.Framework lock (m_syncRoot) { m_dict.Add(key, value); - ++m_arrayVersion; + m_array = null; return m_dict.Count; } } @@ -124,7 +118,7 @@ namespace OpenSim.Framework lock (m_syncRoot) { bool removed = m_dict.Remove(key); - ++m_arrayVersion; + m_array = null; return removed; } } @@ -163,9 +157,7 @@ namespace OpenSim.Framework lock (m_syncRoot) { m_dict = new Dictionary(); - m_array = new TValue[0]; - m_lastArrayVersion = 0; - m_arrayVersion = 0; + m_array = null; } } @@ -179,12 +171,10 @@ namespace OpenSim.Framework { lock (m_syncRoot) { - if(m_lastArrayVersion != m_arrayVersion) + if (m_array == null) { - TValue[] array = new TValue[m_dict.Count]; - m_dict.Values.CopyTo(array, 0); - m_array = array; - m_lastArrayVersion = m_arrayVersion; + m_array = new TValue[m_dict.Count]; + m_dict.Values.CopyTo(m_array, 0); } return m_array; } -- cgit v1.1