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