[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Loading chunks
- From: Javier Guerra <javier@...>
- Date: Fri, 17 Feb 2006 07:51:56 -0500
On Friday 17 February 2006 7:45 am, Alex Queiroz wrote:
> Hallo,
>
> On 2/17/06, Guy Davidson <guy@creative-assembly.co.uk> wrote:
> > My client C++ code calls luaL_loadfile with this filename. My stack
> > diagnostics tell me a Lua function is on the top of the stack now.
>
> Did you run this function?
i'll try to clarify Alex's suggestion: luaL_loadfile() loads the chunk and
compiles it, but it doesn't execute the chunk. remember that a code like
yours:
function foo()
-- ...
end
is just syntactic sugar for:
foo = function ()
-- ...
end
IOW, it constructs a function and then assigns it to a variable. that
assignment is what must be executed. to execute that, you have to execute
the chunk itself. the function that you got in the stack is the whole chunk
compiled and unexecuted. only after running it you'll find your function(s
and variables) in the global table
--
Javier
Attachment:
pgpquWkPZdYlW.pgp
Description: PGP signature