aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStore.cs17
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs8
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs2
3 files changed, 17 insertions, 10 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStore.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStore.cs
index 5808d46..c7f0001 100644
--- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStore.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStore.cs
@@ -250,6 +250,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
250 return true; 250 return true;
251 } 251 }
252 252
253 // pkey will be the final element in the path, we pull it out here to make sure
254 // that the assignment works correctly
253 string pkey = path.Pop(); 255 string pkey = path.Pop();
254 string pexpr = PathExpressionToKey(path); 256 string pexpr = PathExpressionToKey(path);
255 if (pexpr != "") 257 if (pexpr != "")
@@ -259,7 +261,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
259 if (result == null) 261 if (result == null)
260 return false; 262 return false;
261 263
262 // Check for and extract array references 264 // Check pkey, the last element in the path, for and extract array references
263 MatchCollection amatches = m_ArrayPattern.Matches(pkey,0); 265 MatchCollection amatches = m_ArrayPattern.Matches(pkey,0);
264 if (amatches.Count > 0) 266 if (amatches.Count > 0)
265 { 267 {
@@ -307,16 +309,23 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
307 309
308 if (result is OSDMap) 310 if (result is OSDMap)
309 { 311 {
312 // this is the assignment case
310 OSDMap hmap = result as OSDMap; 313 OSDMap hmap = result as OSDMap;
311 if (ovalue != null) 314 if (ovalue != null)
312 { 315 {
313 hmap[hkey] = ovalue; 316 hmap[hkey] = ovalue;
314 InvokeNextCallback(pexpr + pkey); 317 InvokeNextCallback(pexpr + pkey);
318 return true;
315 } 319 }
316 else if (hmap.ContainsKey(hkey)) 320
321 // this is the remove case
322 if (hmap.ContainsKey(hkey))
323 {
317 hmap.Remove(hkey); 324 hmap.Remove(hkey);
318 325 return true;
319 return true; 326 }
327
328 return false;
320 } 329 }
321 330
322 return false; 331 return false;
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs
index 3b52e44..3249aa3 100644
--- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreModule.cs
@@ -239,7 +239,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
239 if (! m_enabled) return false; 239 if (! m_enabled) return false;
240 240
241 lock (m_JsonValueStore) 241 lock (m_JsonValueStore)
242 m_JsonValueStore.Remove(storeID); 242 return m_JsonValueStore.Remove(storeID);
243 243
244 return true; 244 return true;
245 } 245 }
@@ -311,8 +311,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
311 try 311 try
312 { 312 {
313 lock (map) 313 lock (map)
314 if (map.SetValue(path,value,useJson)) 314 return map.SetValue(path,value,useJson);
315 return true;
316 } 315 }
317 catch (Exception e) 316 catch (Exception e)
318 { 317 {
@@ -344,8 +343,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
344 try 343 try
345 { 344 {
346 lock (map) 345 lock (map)
347 if (map.RemoveValue(path)) 346 return map.RemoveValue(path);
348 return true;
349 } 347 }
350 catch (Exception e) 348 catch (Exception e)
351 { 349 {
diff --git a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs
index 48b4a9f..d75cd32 100644
--- a/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/JsonStore/JsonStoreScriptModule.cs
@@ -504,7 +504,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
504 { 504 {
505 string jsondata = SLUtil.ParseNotecardToString(Encoding.UTF8.GetString(a.Data)); 505 string jsondata = SLUtil.ParseNotecardToString(Encoding.UTF8.GetString(a.Data));
506 int result = m_store.SetValue(storeID, path, jsondata,true) ? 1 : 0; 506 int result = m_store.SetValue(storeID, path, jsondata,true) ? 1 : 0;
507 m_comms.DispatchReply(scriptID,result, "", reqID.ToString()); 507 m_comms.DispatchReply(scriptID, result, "", reqID.ToString());
508 return; 508 return;
509 } 509 }
510 catch (Exception e) 510 catch (Exception e)