diff options
author | UbitUmarov | 2019-01-06 20:10:43 +0000 |
---|---|---|
committer | UbitUmarov | 2019-01-06 20:10:43 +0000 |
commit | 950b605b429e95ffef8a184ff0218a9d36ab608a (patch) | |
tree | 7d9260bae7792440969918c3ee511b25a81ec3c3 /OpenSim/Framework/MapAndArray.cs | |
parent | change its foreach (diff) | |
download | opensim-SC-950b605b429e95ffef8a184ff0218a9d36ab608a.zip opensim-SC-950b605b429e95ffef8a184ff0218a9d36ab608a.tar.gz opensim-SC-950b605b429e95ffef8a184ff0218a9d36ab608a.tar.bz2 opensim-SC-950b605b429e95ffef8a184ff0218a9d36ab608a.tar.xz |
more changes on scenegraph etc
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/MapAndArray.cs | 28 |
1 files changed, 9 insertions, 19 deletions
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 | |||
41 | { | 41 | { |
42 | private Dictionary<TKey, TValue> m_dict; | 42 | private Dictionary<TKey, TValue> m_dict; |
43 | private TValue[] m_array; | 43 | private TValue[] m_array; |
44 | private int m_lastArrayVersion; | ||
45 | private int m_arrayVersion; | ||
46 | 44 | ||
47 | /// <summary>Number of values currently stored in the collection</summary> | 45 | /// <summary>Number of values currently stored in the collection</summary> |
48 | public int Count { get { return m_dict.Count; } } | 46 | public int Count { get { return m_dict.Count; } } |
@@ -59,9 +57,7 @@ namespace OpenSim.Framework | |||
59 | public MapAndArray() | 57 | public MapAndArray() |
60 | { | 58 | { |
61 | m_dict = new Dictionary<TKey, TValue>(); | 59 | m_dict = new Dictionary<TKey, TValue>(); |
62 | m_array = new TValue[0]; | 60 | m_array = null; |
63 | m_lastArrayVersion = 0; | ||
64 | m_arrayVersion = 0; | ||
65 | } | 61 | } |
66 | 62 | ||
67 | /// <summary> | 63 | /// <summary> |
@@ -71,9 +67,7 @@ namespace OpenSim.Framework | |||
71 | public MapAndArray(int capacity) | 67 | public MapAndArray(int capacity) |
72 | { | 68 | { |
73 | m_dict = new Dictionary<TKey, TValue>(capacity); | 69 | m_dict = new Dictionary<TKey, TValue>(capacity); |
74 | m_array = new TValue[0]; | 70 | m_array = null; |
75 | m_lastArrayVersion = 0; | ||
76 | m_arrayVersion = 0; | ||
77 | } | 71 | } |
78 | 72 | ||
79 | /// <summary> | 73 | /// <summary> |
@@ -91,7 +85,7 @@ namespace OpenSim.Framework | |||
91 | bool containedKey = m_dict.ContainsKey(key); | 85 | bool containedKey = m_dict.ContainsKey(key); |
92 | 86 | ||
93 | m_dict[key] = value; | 87 | m_dict[key] = value; |
94 | ++m_arrayVersion; | 88 | m_array = null; |
95 | 89 | ||
96 | return !containedKey; | 90 | return !containedKey; |
97 | } | 91 | } |
@@ -109,7 +103,7 @@ namespace OpenSim.Framework | |||
109 | lock (m_syncRoot) | 103 | lock (m_syncRoot) |
110 | { | 104 | { |
111 | m_dict.Add(key, value); | 105 | m_dict.Add(key, value); |
112 | ++m_arrayVersion; | 106 | m_array = null; |
113 | return m_dict.Count; | 107 | return m_dict.Count; |
114 | } | 108 | } |
115 | } | 109 | } |
@@ -124,7 +118,7 @@ namespace OpenSim.Framework | |||
124 | lock (m_syncRoot) | 118 | lock (m_syncRoot) |
125 | { | 119 | { |
126 | bool removed = m_dict.Remove(key); | 120 | bool removed = m_dict.Remove(key); |
127 | ++m_arrayVersion; | 121 | m_array = null; |
128 | return removed; | 122 | return removed; |
129 | } | 123 | } |
130 | } | 124 | } |
@@ -163,9 +157,7 @@ namespace OpenSim.Framework | |||
163 | lock (m_syncRoot) | 157 | lock (m_syncRoot) |
164 | { | 158 | { |
165 | m_dict = new Dictionary<TKey, TValue>(); | 159 | m_dict = new Dictionary<TKey, TValue>(); |
166 | m_array = new TValue[0]; | 160 | m_array = null; |
167 | m_lastArrayVersion = 0; | ||
168 | m_arrayVersion = 0; | ||
169 | } | 161 | } |
170 | } | 162 | } |
171 | 163 | ||
@@ -179,12 +171,10 @@ namespace OpenSim.Framework | |||
179 | { | 171 | { |
180 | lock (m_syncRoot) | 172 | lock (m_syncRoot) |
181 | { | 173 | { |
182 | if(m_lastArrayVersion != m_arrayVersion) | 174 | if (m_array == null) |
183 | { | 175 | { |
184 | TValue[] array = new TValue[m_dict.Count]; | 176 | m_array = new TValue[m_dict.Count]; |
185 | m_dict.Values.CopyTo(array, 0); | 177 | m_dict.Values.CopyTo(m_array, 0); |
186 | m_array = array; | ||
187 | m_lastArrayVersion = m_arrayVersion; | ||
188 | } | 178 | } |
189 | return m_array; | 179 | return m_array; |
190 | } | 180 | } |