lua_lock receives its parameter via stack.
beginblock and endblock do not have parameters
This commit is contained in:
13
lua.h
13
lua.h
@@ -2,7 +2,7 @@
|
|||||||
** LUA - Linguagem para Usuarios de Aplicacao
|
** LUA - Linguagem para Usuarios de Aplicacao
|
||||||
** Grupo de Tecnologia em Computacao Grafica
|
** Grupo de Tecnologia em Computacao Grafica
|
||||||
** TeCGraf - PUC-Rio
|
** TeCGraf - PUC-Rio
|
||||||
** $Id: lua.h,v 3.9 1994/11/17 21:23:43 roberto Exp roberto $
|
** $Id: lua.h,v 3.10 1994/11/17 21:27:30 roberto Exp roberto $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -36,8 +36,8 @@ int lua_dostring (char *string);
|
|||||||
int lua_callfunction (lua_Object function);
|
int lua_callfunction (lua_Object function);
|
||||||
int lua_call (char *funcname);
|
int lua_call (char *funcname);
|
||||||
|
|
||||||
int lua_beginblock (void);
|
void lua_beginblock (void);
|
||||||
void lua_endblock (int block);
|
void lua_endblock (void);
|
||||||
|
|
||||||
lua_Object lua_getparam (int number);
|
lua_Object lua_getparam (int number);
|
||||||
#define lua_getresult(_) lua_getparam(_)
|
#define lua_getresult(_) lua_getparam(_)
|
||||||
@@ -63,14 +63,17 @@ lua_Object lua_getsubscript (void);
|
|||||||
|
|
||||||
int lua_type (lua_Object object);
|
int lua_type (lua_Object object);
|
||||||
|
|
||||||
int lua_lock (lua_Object object);
|
int lua_lock (void);
|
||||||
lua_Object lua_getlocked (int ref);
|
lua_Object lua_getlocked (int ref);
|
||||||
void lua_unlock (int ref);
|
void lua_unlock (int ref);
|
||||||
|
|
||||||
lua_Object lua_createTable (int initSize);
|
lua_Object lua_createtable (int initSize);
|
||||||
|
|
||||||
|
|
||||||
/* for lua 1.1 */
|
/* for lua 1.1 */
|
||||||
|
|
||||||
|
#define lua_lockobject(o) (lua_pushobject(o), lua_lock())
|
||||||
|
|
||||||
#define lua_register(n,f) (lua_pushcfunction(f), lua_storeglobal(n))
|
#define lua_register(n,f) (lua_pushcfunction(f), lua_storeglobal(n))
|
||||||
|
|
||||||
#define lua_getindexed(o,n) (lua_pushobject(o), lua_pushnumber(n), lua_getsubscript())
|
#define lua_getindexed(o,n) (lua_pushobject(o), lua_pushnumber(n), lua_getsubscript())
|
||||||
|
|||||||
34
opcode.c
34
opcode.c
@@ -3,7 +3,7 @@
|
|||||||
** TecCGraf - PUC-Rio
|
** TecCGraf - PUC-Rio
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *rcs_opcode="$Id: opcode.c,v 3.16 1994/11/17 19:43:34 roberto Exp roberto $";
|
char *rcs_opcode="$Id: opcode.c,v 3.17 1994/11/17 21:23:43 roberto Exp roberto $";
|
||||||
|
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -436,21 +436,33 @@ lua_Object lua_getsubscript (void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#define MAX_C_BLOCKS 10
|
||||||
|
|
||||||
|
static int numCblocks = 0;
|
||||||
|
static int Cblocks[MAX_C_BLOCKS];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** API: starts a new block
|
** API: starts a new block
|
||||||
*/
|
*/
|
||||||
int lua_beginblock (void)
|
void lua_beginblock (void)
|
||||||
{
|
{
|
||||||
return CBase;
|
if (numCblocks < MAX_C_BLOCKS)
|
||||||
|
Cblocks[numCblocks] = CBase;
|
||||||
|
numCblocks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** API: ends a block
|
** API: ends a block
|
||||||
*/
|
*/
|
||||||
void lua_endblock (int block)
|
void lua_endblock (void)
|
||||||
{
|
{
|
||||||
CBase = block;
|
--numCblocks;
|
||||||
adjustC(0);
|
if (numCblocks < MAX_C_BLOCKS)
|
||||||
|
{
|
||||||
|
CBase = Cblocks[numCblocks];
|
||||||
|
adjustC(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -468,7 +480,7 @@ int lua_storesubscript (void)
|
|||||||
/*
|
/*
|
||||||
** API: creates a new table
|
** API: creates a new table
|
||||||
*/
|
*/
|
||||||
lua_Object lua_createTable (int initSize)
|
lua_Object lua_createtable (int initSize)
|
||||||
{
|
{
|
||||||
adjustC(0);
|
adjustC(0);
|
||||||
avalue(top) = lua_createarray(initSize);
|
avalue(top) = lua_createarray(initSize);
|
||||||
@@ -550,6 +562,14 @@ lua_Object lua_getlocked (int ref)
|
|||||||
return Ref(top-1);
|
return Ref(top-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int lua_lock (void)
|
||||||
|
{
|
||||||
|
adjustC(1);
|
||||||
|
return luaI_lock(--top);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Get a global object. Return the object handle or NULL on error.
|
** Get a global object. Return the object handle or NULL on error.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user