Commit b02a275d authored by Vinicius Jarina's avatar Vinicius Jarina
Browse files

[WinRT] Fixed Windows Phone 8 build.

parent 85c908ea
...@@ -142,9 +142,9 @@ namespace NLua.Extensions ...@@ -142,9 +142,9 @@ namespace NLua.Extensions
return t.HasMethod ("op_LessThanOrEqual"); return t.HasMethod ("op_LessThanOrEqual");
} }
public static IEnumerable<MethodInfo> GetMethods (this Type t, string name, BindingFlags flags) public static MethodInfo [] GetMethods (this Type t, string name, BindingFlags flags)
{ {
return t.GetMethods (flags).Where (m => m.Name == name); return t.GetMethods (flags).Where (m => m.Name == name).ToArray ();
} }
public static MethodInfo [] GetExtensionMethods (this Type type, IEnumerable<Assembly> assemblies = null) public static MethodInfo [] GetExtensionMethods (this Type type, IEnumerable<Assembly> assemblies = null)
...@@ -376,6 +376,11 @@ namespace NLua.Extensions ...@@ -376,6 +376,11 @@ namespace NLua.Extensions
return t.GetTypeInfo ().IsAssignableFrom (t2.GetTypeInfo ()); return t.GetTypeInfo ().IsAssignableFrom (t2.GetTypeInfo ());
} }
public static MemberInfo [] GetMember (this Type t, string name, BindingFlags flags)
{
return null;
}
public static MethodInfo[] GetMethods (this Type t) public static MethodInfo[] GetMethods (this Type t)
{ {
return null; return null;
......
...@@ -399,8 +399,8 @@ namespace NLua ...@@ -399,8 +399,8 @@ namespace NLua
// Try to access by array if the type is right and index is an int (lua numbers always come across as double) // Try to access by array if the type is right and index is an int (lua numbers always come across as double)
if (objType.IsArray && index is double) { if (objType.IsArray && index is double) {
int intIndex = (int)((double)index); int intIndex = (int)((double)index);
#if NETFX_CORE #if NETFX_CORE
Type type = objType; Type type = objType;
#else #else
Type type = objType.UnderlyingSystemType; Type type = objType.UnderlyingSystemType;
...@@ -594,7 +594,11 @@ namespace NLua ...@@ -594,7 +594,11 @@ namespace NLua
} }
if (member != null) { if (member != null) {
#if NETFX_CORE
if (member is FieldInfo) {
#else
if (member.MemberType == MemberTypes.Field) { if (member.MemberType == MemberTypes.Field) {
#endif
var field = (FieldInfo)member; var field = (FieldInfo)member;
if (cachedMember == null) if (cachedMember == null)
...@@ -605,7 +609,11 @@ namespace NLua ...@@ -605,7 +609,11 @@ namespace NLua
} catch { } catch {
LuaLib.LuaPushNil (luaState); LuaLib.LuaPushNil (luaState);
} }
#if NETFX_CORE
} else if (member is PropertyInfo) {
#else
} else if (member.MemberType == MemberTypes.Property) { } else if (member.MemberType == MemberTypes.Property) {
#endif
var property = (PropertyInfo)member; var property = (PropertyInfo)member;
if (cachedMember == null) if (cachedMember == null)
SetMemberCache (memberCache, objType, methodName, member); SetMemberCache (memberCache, objType, methodName, member);
...@@ -621,21 +629,31 @@ namespace NLua ...@@ -621,21 +629,31 @@ namespace NLua
return GetMember (luaState, new ProxyType(objType.UnderlyingSystemType.GetTypeInfo().BaseType), obj, methodName, bindingType); return GetMember (luaState, new ProxyType(objType.UnderlyingSystemType.GetTypeInfo().BaseType), obj, methodName, bindingType);
#else #else
return GetMember (luaState, new ProxyType(objType.UnderlyingSystemType.BaseType), obj, methodName, bindingType); return GetMember (luaState, new ProxyType(objType.UnderlyingSystemType.BaseType), obj, methodName, bindingType);
#endif #endif
else else
LuaLib.LuaPushNil (luaState); LuaLib.LuaPushNil (luaState);
} catch (TargetInvocationException e) { // Convert this exception into a Lua error } catch (TargetInvocationException e) { // Convert this exception into a Lua error
ThrowError (luaState, e); ThrowError (luaState, e);
LuaLib.LuaPushNil (luaState); LuaLib.LuaPushNil (luaState);
} }
#if NETFX_CORE
} else if (member is EventInfo) {
#else
} else if (member.MemberType == MemberTypes.Event) { } else if (member.MemberType == MemberTypes.Event) {
#endif
var eventInfo = (EventInfo)member; var eventInfo = (EventInfo)member;
if (cachedMember == null) if (cachedMember == null)
SetMemberCache (memberCache, objType, methodName, member); SetMemberCache (memberCache, objType, methodName, member);
translator.Push (luaState, new RegisterEventHandler (translator.pendingEvents, obj, eventInfo)); translator.Push (luaState, new RegisterEventHandler (translator.pendingEvents, obj, eventInfo));
} else if (!implicitStatic) { } else if (!implicitStatic) {
#if NETFX_CORE
var typeInfo = member as TypeInfo;
if (!typeInfo.IsPublic && !typeInfo.IsNotPublic) {
#else
if (member.MemberType == MemberTypes.NestedType) { if (member.MemberType == MemberTypes.NestedType) {
#endif
// kevinh - added support for finding nested types // kevinh - added support for finding nested types
// cache us // cache us
if (cachedMember == null) if (cachedMember == null)
...@@ -842,8 +860,12 @@ namespace NLua ...@@ -842,8 +860,12 @@ namespace NLua
return false; return false;
} }
} }
#if NETFX_CORE
if (member is FieldInfo) {
#else
if (member.MemberType == MemberTypes.Field) { if (member.MemberType == MemberTypes.Field) {
#endif
var field = (FieldInfo)member; var field = (FieldInfo)member;
object val = translator.GetAsType (luaState, 3, field.FieldType); object val = translator.GetAsType (luaState, 3, field.FieldType);
...@@ -855,7 +877,11 @@ namespace NLua ...@@ -855,7 +877,11 @@ namespace NLua
// We did a call // We did a call
return true; return true;
#if NETFX_CORE
} else if (member is PropertyInfo) {
#else
} else if (member.MemberType == MemberTypes.Property) { } else if (member.MemberType == MemberTypes.Property) {
#endif
var property = (PropertyInfo)member; var property = (PropertyInfo)member;
object val = translator.GetAsType (luaState, 3, property.PropertyType); object val = translator.GetAsType (luaState, 3, property.PropertyType);
......
...@@ -94,7 +94,7 @@ namespace NLua.Method ...@@ -94,7 +94,7 @@ namespace NLua.Method
_ExtractTarget = translator.typeChecker.GetExtractor (targetType); _ExtractTarget = translator.typeChecker.GetExtractor (targetType);
_IsStatic = (bindingType & BindingFlags.Static) == BindingFlags.Static; _IsStatic = (bindingType & BindingFlags.Static) == BindingFlags.Static;
_Members = targetType.UnderlyingSystemType.GetMember (methodName, MemberTypes.Method, bindingType | BindingFlags.Public); _Members = targetType.UnderlyingSystemType.GetMethods (methodName, bindingType | BindingFlags.Public);
} }
/// <summary> /// <summary>
...@@ -204,11 +204,11 @@ namespace NLua.Method ...@@ -204,11 +204,11 @@ namespace NLua.Method
string candidateName = null; string candidateName = null;
foreach (var member in _Members) { foreach (var member in _Members) {
#if NETFX_CORE #if NETFX_CORE
candidateName = member.DeclaringType.Name + "." + member.Name; candidateName = member.DeclaringType.Name + "." + member.Name;
#else #else
candidateName = member.ReflectedType.Name + "." + member.Name; candidateName = member.ReflectedType.Name + "." + member.Name;
#endif #endif
var m = (MethodInfo)member; var m = (MethodInfo)member;
bool isMethod = _Translator.MatchParameters (luaState, m, ref _LastCalledMethod); bool isMethod = _Translator.MatchParameters (luaState, m, ref _LastCalledMethod);
......
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