"packages/KeraLua.1.0.9/lib/vscode:/vscode.git/clone" did not exist on "a7bec7fb031b862a5d6054c0183ddaca927d8d04"
Commit 647058ac authored by Mangatome's avatar Mangatome
Browse files

Fix regression

Fixes regressions introduced by commit
4cfc1f2b, due to generic collection
exceptions in Metatables.checkMemberCache and Metatables.setMemberCache.
parent 296814ea
...@@ -476,8 +476,21 @@ namespace NLua ...@@ -476,8 +476,21 @@ namespace NLua
*/ */
private object checkMemberCache (Dictionary<object, object> memberCache, IReflect objType, string memberName) private object checkMemberCache (Dictionary<object, object> memberCache, IReflect objType, string memberName)
{ {
var members = (Dictionary<object, object>)memberCache [objType]; object members = null;
return !members.IsNull () ? members [memberName] : null;
if (memberCache.TryGetValue(objType, out members))
{
var membersDict = members as Dictionary<object, object>;
object memberValue = null;
if (!members.IsNull() && membersDict.TryGetValue(memberName, out memberValue))
{
return memberValue;
}
}
return null;
} }
/* /*
...@@ -485,14 +498,15 @@ namespace NLua ...@@ -485,14 +498,15 @@ namespace NLua
*/ */
private void setMemberCache (Dictionary<object, object> memberCache, IReflect objType, string memberName, object member) private void setMemberCache (Dictionary<object, object> memberCache, IReflect objType, string memberName, object member)
{ {
var members = (Dictionary<object, object>)memberCache[objType]; Dictionary<object, object> members = null;
object memberCacheValue = null;
if (members.IsNull ()) { if (memberCache.TryGetValue(objType, out memberCacheValue)) {
members = (Dictionary<object, object>)memberCacheValue;
} else {
members = new Dictionary<object, object>(); members = new Dictionary<object, object>();
memberCache [objType] = members; memberCache[objType] = members;
} }
members [memberName] = member;
} }
/* /*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment