Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2. ** $Id: lfunc.h,v 2.6 2010/06/04 13:06:15 roberto Exp $
  3. ** Auxiliary functions to manipulate prototypes and closures
  4. ** See Copyright Notice in lua.h
  5. */
  6.  
  7. #ifndef lfunc_h
  8. #define lfunc_h
  9.  
  10.  
  11. #include "lobject.h"
  12.  
  13.  
  14. #define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \
  15.                          cast(int, sizeof(TValue)*((n)-1)))
  16.  
  17. #define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \
  18.                          cast(int, sizeof(TValue *)*((n)-1)))
  19.  
  20.  
  21. LUAI_FUNC Proto *luaF_newproto (lua_State *L);
  22. LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems);
  23. LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, Proto *p);
  24. LUAI_FUNC UpVal *luaF_newupval (lua_State *L);
  25. LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level);
  26. LUAI_FUNC void luaF_close (lua_State *L, StkId level);
  27. LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f);
  28. LUAI_FUNC void luaF_freeclosure (lua_State *L, Closure *c);
  29. LUAI_FUNC void luaF_freeupval (lua_State *L, UpVal *uv);
  30. LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number,
  31.                                          int pc);
  32.  
  33.  
  34. #endif
  35.