Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
NLua
Commits
b02a275d
Commit
b02a275d
authored
Oct 11, 2014
by
Vinicius Jarina
Browse files
[WinRT] Fixed Windows Phone 8 build.
parent
85c908ea
Changes
3
Hide whitespace changes
Inline
Side-by-side
Core/NLua/Extensions/GeneralExtensions.cs
View file @
b02a275d
...
...
@@ -142,9 +142,9 @@ namespace NLua.Extensions
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
)
...
...
@@ -376,6 +376,11 @@ namespace NLua.Extensions
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
)
{
return
null
;
...
...
Core/NLua/Metatables.cs
View file @
b02a275d
...
...
@@ -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)
if
(
objType
.
IsArray
&&
index
is
double
)
{
int
intIndex
=
(
int
)((
double
)
index
);
#if NETFX_CORE
int
intIndex
=
(
int
)((
double
)
index
);
#if NETFX_CORE
Type
type
=
objType
;
#else
Type
type
=
objType
.
UnderlyingSystemType
;
...
...
@@ -594,7 +594,11 @@ namespace NLua
}
if
(
member
!=
null
)
{
#if NETFX_CORE
if
(
member
is
FieldInfo
)
{
#else
if
(
member
.
MemberType
==
MemberTypes
.
Field
)
{
#endif
var
field
=
(
FieldInfo
)
member
;
if
(
cachedMember
==
null
)
...
...
@@ -605,7 +609,11 @@ namespace NLua
}
catch
{
LuaLib
.
LuaPushNil
(
luaState
);
}
#if NETFX_CORE
}
else
if
(
member
is
PropertyInfo
)
{
#else
}
else
if
(
member
.
MemberType
==
MemberTypes
.
Property
)
{
#endif
var
property
=
(
PropertyInfo
)
member
;
if
(
cachedMember
==
null
)
SetMemberCache
(
memberCache
,
objType
,
methodName
,
member
);
...
...
@@ -621,21 +629,31 @@ namespace NLua
return
GetMember
(
luaState
,
new
ProxyType
(
objType
.
UnderlyingSystemType
.
GetTypeInfo
().
BaseType
),
obj
,
methodName
,
bindingType
);
#else
return
GetMember
(
luaState
,
new
ProxyType
(
objType
.
UnderlyingSystemType
.
BaseType
),
obj
,
methodName
,
bindingType
);
#endif
#endif
else
LuaLib
.
LuaPushNil
(
luaState
);
}
catch
(
TargetInvocationException
e
)
{
// Convert this exception into a Lua error
ThrowError
(
luaState
,
e
);
LuaLib
.
LuaPushNil
(
luaState
);
}
#if NETFX_CORE
}
else
if
(
member
is
EventInfo
)
{
#else
}
else
if
(
member
.
MemberType
==
MemberTypes
.
Event
)
{
#endif
var
eventInfo
=
(
EventInfo
)
member
;
if
(
cachedMember
==
null
)
SetMemberCache
(
memberCache
,
objType
,
methodName
,
member
);
translator
.
Push
(
luaState
,
new
RegisterEventHandler
(
translator
.
pendingEvents
,
obj
,
eventInfo
));
}
else
if
(!
implicitStatic
)
{
#if NETFX_CORE
var
typeInfo
=
member
as
TypeInfo
;
if
(!
typeInfo
.
IsPublic
&&
!
typeInfo
.
IsNotPublic
)
{
#else
if
(
member
.
MemberType
==
MemberTypes
.
NestedType
)
{
#endif
// kevinh - added support for finding nested types
// cache us
if
(
cachedMember
==
null
)
...
...
@@ -842,8 +860,12 @@ namespace NLua
return
false
;
}
}
#if NETFX_CORE
if
(
member
is
FieldInfo
)
{
#else
if
(
member
.
MemberType
==
MemberTypes
.
Field
)
{
#endif
var
field
=
(
FieldInfo
)
member
;
object
val
=
translator
.
GetAsType
(
luaState
,
3
,
field
.
FieldType
);
...
...
@@ -855,7 +877,11 @@ namespace NLua
// We did a call
return
true
;
#if NETFX_CORE
}
else
if
(
member
is
PropertyInfo
)
{
#else
}
else
if
(
member
.
MemberType
==
MemberTypes
.
Property
)
{
#endif
var
property
=
(
PropertyInfo
)
member
;
object
val
=
translator
.
GetAsType
(
luaState
,
3
,
property
.
PropertyType
);
...
...
Core/NLua/Method/LuaMethodWrapper.cs
View file @
b02a275d
...
...
@@ -94,7 +94,7 @@ namespace NLua.Method
_ExtractTarget
=
translator
.
typeChecker
.
GetExtractor
(
targetType
);
_IsStatic
=
(
bindingType
&
BindingFlags
.
Static
)
==
BindingFlags
.
Static
;
_Members
=
targetType
.
UnderlyingSystemType
.
GetMe
mber
(
methodName
,
MemberTypes
.
Method
,
bindingType
|
BindingFlags
.
Public
);
_Members
=
targetType
.
UnderlyingSystemType
.
GetMe
thods
(
methodName
,
bindingType
|
BindingFlags
.
Public
);
}
/// <summary>
...
...
@@ -204,11 +204,11 @@ namespace NLua.Method
string
candidateName
=
null
;
foreach
(
var
member
in
_Members
)
{
#if NETFX_CORE
#if NETFX_CORE
candidateName
=
member
.
DeclaringType
.
Name
+
"."
+
member
.
Name
;
#else
candidateName
=
member
.
ReflectedType
.
Name
+
"."
+
member
.
Name
;
#endif
#endif
var
m
=
(
MethodInfo
)
member
;
bool
isMethod
=
_Translator
.
MatchParameters
(
luaState
,
m
,
ref
_LastCalledMethod
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment