Fix the return values for JsonDestroyStore, JsonRemoveValue, and JsonSetValue.

Fix the link message status when reading a notecard.
0.7.4-extended
Mic Bowman 2013-02-08 12:00:16 -08:00 committed by Justin Clark-Casey (justincc)
parent b46a9cf57f
commit f6ddd20413
3 changed files with 17 additions and 10 deletions

View File

@ -242,6 +242,8 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
return true;
}
// pkey will be the final element in the path, we pull it out here to make sure
// that the assignment works correctly
string pkey = path.Pop();
string pexpr = PathExpressionToKey(path);
if (pexpr != "")
@ -251,7 +253,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
if (result == null)
return false;
// Check for and extract array references
// Check pkey, the last element in the path, for and extract array references
MatchCollection amatches = m_ArrayPattern.Matches(pkey,0);
if (amatches.Count > 0)
{
@ -299,16 +301,23 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
if (result is OSDMap)
{
// this is the assignment case
OSDMap hmap = result as OSDMap;
if (ovalue != null)
{
hmap[hkey] = ovalue;
InvokeNextCallback(pexpr + pkey);
return true;
}
else if (hmap.ContainsKey(hkey))
// this is the remove case
if (hmap.ContainsKey(hkey))
{
hmap.Remove(hkey);
return true;
return true;
}
return false;
}
return false;

View File

@ -211,7 +211,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
if (! m_enabled) return false;
lock (m_JsonValueStore)
m_JsonValueStore.Remove(storeID);
return m_JsonValueStore.Remove(storeID);
return true;
}
@ -283,8 +283,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
try
{
lock (map)
if (map.SetValue(path,value,useJson))
return true;
return map.SetValue(path,value,useJson);
}
catch (Exception e)
{
@ -316,8 +315,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
try
{
lock (map)
if (map.RemoveValue(path))
return true;
return map.RemoveValue(path);
}
catch (Exception e)
{

View File

@ -488,7 +488,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore
{
string jsondata = SLUtil.ParseNotecardToString(Encoding.UTF8.GetString(a.Data));
int result = m_store.SetValue(storeID, path, jsondata,true) ? 1 : 0;
m_comms.DispatchReply(scriptID,result, "", reqID.ToString());
m_comms.DispatchReply(scriptID, result, "", reqID.ToString());
return;
}
catch (Exception e)