176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** $Id: lapi.h,v 2.7.1.1 2013/04/12 18:48:47 roberto Exp $ 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** Auxiliary functions from Lua API 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman** See Copyright Notice in lua.h 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman*/ 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef lapi_h 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define lapi_h 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "llimits.h" 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include "lstate.h" 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define api_incr_top(L) {L->top++; api_check(L, L->top <= L->ci->top, \ 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman "stack overflow");} 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define adjustresults(L,nres) \ 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { if ((nres) == LUA_MULTRET && L->ci->top < L->top) L->ci->top = L->top; } 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define api_checknelems(L,n) api_check(L, (n) < (L->top - L->ci->func), \ 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman "not enough elements in the stack") 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 25