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
f6a8c49d
"...Codefoco.Touch.Server.1.0.16/vscode:/vscode.git/clone" did not exist on "d63817e8e71d009b1d817aa95597b48d39f43f28"
Commit
f6a8c49d
authored
Apr 07, 2015
by
dpull
Browse files
test targetObject equals null.(some class override operator ==.)
parent
8bb11599
Changes
1
Hide whitespace changes
Inline
Side-by-side
Core/NLua/Method/LuaMethodWrapper.cs
View file @
f6a8c49d
...
...
@@ -141,10 +141,16 @@ namespace NLua.Method
SetPendingException
(
null
);
if
(
methodToCall
==
null
)
{
// Method from name
if
(
isStatic
)
if
(
isStatic
)
{
targetObject
=
null
;
else
}
else
{
targetObject
=
_ExtractTarget
(
luaState
,
1
);
if
(
targetObject
==
null
||
targetObject
.
Equals
(
null
))
{
_Translator
.
ThrowError
(
luaState
,
String
.
Format
(
"instance method '{0}' requires a non null target object"
,
_MethodName
));
LuaLib
.
LuaPushNil
(
luaState
);
return
1
;
}
}
if
(
_LastCalledMethod
.
cachedMethod
!=
null
)
{
// Cached?
int
numStackToSkip
=
isStatic
?
0
:
1
;
// If this is an instance invoe we will have an extra arg on the stack for the targetObject
...
...
@@ -207,12 +213,6 @@ namespace NLua.Method
// System.Diagnostics.Debug.WriteLine("cache miss on " + methodName);
// If we are running an instance variable, we can now pop the targetObject from the stack
if
(!
isStatic
)
{
if
(
targetObject
==
null
)
{
_Translator
.
ThrowError
(
luaState
,
String
.
Format
(
"instance method '{0}' requires a non null target object"
,
_MethodName
));
LuaLib
.
LuaPushNil
(
luaState
);
return
1
;
}
LuaLib
.
LuaRemove
(
luaState
,
1
);
// Pops the receiver
}
...
...
@@ -264,6 +264,11 @@ namespace NLua.Method
}
else
{
if
(!
methodToCall
.
IsStatic
&&
!
methodToCall
.
IsConstructor
&&
targetObject
==
null
)
{
targetObject
=
_ExtractTarget
(
luaState
,
1
);
if
(
targetObject
==
null
||
targetObject
.
Equals
(
null
))
{
_Translator
.
ThrowError
(
luaState
,
String
.
Format
(
"instance method '{0}' requires a non null target object"
,
_MethodName
));
LuaLib
.
LuaPushNil
(
luaState
);
return
1
;
}
LuaLib
.
LuaRemove
(
luaState
,
1
);
// Pops the receiver
}
...
...
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