Skip to content

Commit

Permalink
fix(AsyncStorageModule): change soft casts to hard casts
Browse files Browse the repository at this point in the history
AsyncStorageModule provides permanent storage for React Native JavaScript applications.
- implement PR #3 comments

Fixes #136
  • Loading branch information
ebragge authored and rozele committed Apr 20, 2016
1 parent cd6d413 commit 67762e9
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions ReactWindows/ReactNative/Modules/Storage/AsyncStorageModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -220,12 +220,12 @@ public void multiMerge(JArray keyValueArray, ICallback callback)
}
else if (tokenOld.Type == JTokenType.Array)
{
(tokenOld as JArray).Merge(tokenNew);
((JArray)tokenOld).Merge(tokenNew);
AddTokenToContainer(key, tokenOld);
}
else if (tokenNew.Type == JTokenType.Array)
{
(tokenNew as JArray).Merge(tokenOld);
((JArray)tokenNew).Merge(tokenOld);
AddTokenToContainer(key, tokenNew);
}
else if (tokenOld.Type == JTokenType.Null)
Expand Down Expand Up @@ -361,23 +361,24 @@ private JToken GetTokenFromContainer(string key)
}
else if (value is string)
{
var valueStr = (string)value;
var type = GetTokenTypeFromContainer(key);
switch (type)
{
case _DataType.Array:
return JArray.Parse(value as string);
return JArray.Parse(valueStr);
case _DataType.Constructor:
return JToken.Parse(value as string);
return JToken.Parse(valueStr);
case _DataType.Object:
return JObject.Parse(value as string);
return JObject.Parse(valueStr);
case _DataType.Date:
return JToken.FromObject(DateTime.Parse(value as string));
return JToken.FromObject(DateTime.Parse(valueStr));
case _DataType.Uri:
return JToken.FromObject(new Uri(value as string));
return JToken.FromObject(new Uri(valueStr));
case _DataType.Raw:
return new JRaw(value);
return new JRaw(valueStr);
case _DataType.String:
return JValue.CreateString(value as string);
return JValue.CreateString(valueStr);
default:
break;
}
Expand Down Expand Up @@ -431,7 +432,7 @@ private static void DeepMergeInto(JObject oldObj, JObject newObj)
oldObj.TryGetValue(key, out tokenOld);
if (tokenNew?.Type == JTokenType.Object && tokenOld?.Type == JTokenType.Object)
{
DeepMergeInto(tokenOld as JObject, tokenNew as JObject);
DeepMergeInto((JObject)tokenOld, (JObject)tokenNew);
PutToJObject(key, tokenOld, oldObj);
}
else
Expand Down

0 comments on commit 67762e9

Please sign in to comment.