亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tolua_is.c

?? tolua++是一個對lua進行封裝調用的工具
?? C
字號:
/* tolua: functions to check types.** Support code for Lua bindings.** Written by Waldemar Celes** TeCGraf/PUC-Rio** Apr 2003** $Id: $*//* This code is free software; you can redistribute it and/or modify it.** The software provided hereunder is on an "as is" basis, and** the author has no obligation to provide maintenance, support, updates,** enhancements, or modifications.*/#include "tolua++.h"#include "lauxlib.h"#include <stdlib.h>#include <string.h>/* a fast check if a is b, without parameter validation i.e. if b is equal to a or a superclass of a. */TOLUA_API int tolua_fast_isa(lua_State *L, int mt_indexa, int mt_indexb, int super_index){ int result;	if (lua_rawequal(L,mt_indexa,mt_indexb))		result = 1;	else	{		if (super_index) {			lua_pushvalue(L, super_index);		} else {			lua_pushliteral(L,"tolua_super");			lua_rawget(L,LUA_REGISTRYINDEX);  /* stack: super */		};		lua_pushvalue(L,mt_indexa);       /* stack: super mta */		lua_rawget(L,-2);                 /* stack: super super[mta] */		lua_pushvalue(L,mt_indexb);       /* stack: super super[mta] mtb */		lua_rawget(L,LUA_REGISTRYINDEX);  /* stack: super super[mta] typenameB */		lua_rawget(L,-2);                 /* stack: super super[mta] bool */		result = lua_toboolean(L,-1);		lua_pop(L,3);	}	return result;}/* Push and returns the corresponding object typename */TOLUA_API const char* tolua_typename (lua_State* L, int lo){	int tag = lua_type(L,lo); if (tag == LUA_TNONE)  lua_pushstring(L,"[no object]"); else if (tag != LUA_TUSERDATA && tag != LUA_TTABLE)  lua_pushstring(L,lua_typename(L,tag)); else if (tag == LUA_TUSERDATA) {  if (!lua_getmetatable(L,lo))   lua_pushstring(L,lua_typename(L,tag));		else		{		 lua_rawget(L,LUA_REGISTRYINDEX);		 if (!lua_isstring(L,-1))			{		  lua_pop(L,1);				lua_pushstring(L,"[undefined]");			}		}	}	else  /* is table */	{		lua_pushvalue(L,lo);		lua_rawget(L,LUA_REGISTRYINDEX);		if (!lua_isstring(L,-1))		{			lua_pop(L,1);			lua_pushstring(L,"table");		}		else		{   lua_pushstring(L,"class ");			lua_insert(L,-2);			lua_concat(L,2);		}	}	return lua_tostring(L,-1);}TOLUA_API void tolua_error (lua_State* L, char* msg, tolua_Error* err){	if (msg[0] == '#')	{  const char* expected = err->type;		const char* provided = tolua_typename(L,err->index);  if (msg[1]=='f')  {   int narg = err->index;			if (err->array)    luaL_error(L,"%s\n     argument #%d is array of '%s'; array of '%s' expected.\n",               msg+2,narg,provided,expected);			else    luaL_error(L,"%s\n     argument #%d is '%s'; '%s' expected.\n",               msg+2,narg,provided,expected);  }  else if (msg[1]=='v')		{			if (err->array)    luaL_error(L,"%s\n     value is array of '%s'; array of '%s' expected.\n",               msg+2,provided,expected);			else    luaL_error(L,"%s\n     value is '%s'; '%s' expected.\n",               msg+2,provided,expected);		} } else  luaL_error(L,msg);}/* the equivalent of lua_is* for usertable */static  int lua_isusertable (lua_State* L, int lo, const char* type){	int r = 0;	if (lo < 0) lo = lua_gettop(L)+lo+1;	lua_pushvalue(L,lo);	lua_rawget(L,LUA_REGISTRYINDEX);  /* get registry[t] */	if (lua_isstring(L,-1))	{		r = strcmp(lua_tostring(L,-1),type)==0;		if (!r)		{			/* try const */			lua_pushstring(L,"const ");			lua_insert(L,-2);			lua_concat(L,2);			r = lua_isstring(L,-1) && strcmp(lua_tostring(L,-1),type)==0;		}	}	lua_pop(L, 1);	return r;}int push_table_instance(lua_State* L, int lo) {	if (lua_istable(L, lo)) {		lua_pushstring(L, ".c_instance");		lua_gettable(L, lo);		if (lua_isuserdata(L, -1)) {			lua_replace(L, lo);			return 1;		} else {			lua_pop(L, 1);			return 0;		};	} else {		return 0;	};	return 0;};/* the equivalent of lua_is* for usertype */static int lua_isusertype (lua_State* L, int lo, const char* type){	if (!lua_isuserdata(L,lo)) {		if (!push_table_instance(L, lo)) {			return 0;		};	};	{		/* check if it is of the same type */		int r;		const char *tn;		if (lua_getmetatable(L,lo))        /* if metatable? */		{		 lua_rawget(L,LUA_REGISTRYINDEX);  /* get registry[mt] */		 tn = lua_tostring(L,-1);		 r = tn && (strcmp(tn,type) == 0);		 lua_pop(L, 1);			if (r)			 return 1;			else			{				/* check if it is a specialized class */				lua_pushstring(L,"tolua_super");				lua_rawget(L,LUA_REGISTRYINDEX); /* get super */				lua_getmetatable(L,lo);				lua_rawget(L,-2);                /* get super[mt] */				if (lua_istable(L,-1))				{					int b;					lua_pushstring(L,type);					lua_rawget(L,-2);                /* get super[mt][type] */					b = lua_toboolean(L,-1);					lua_pop(L,3);					if (b)					 return 1;				}			}		} }	return 0;}TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err){ if (lua_gettop(L)<abs(lo))		return 1;	err->index = lo;	err->array = 0;	err->type = "[no object]"; return 0;}TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err){	if (def || abs(lo)<=lua_gettop(L))  /* any valid index */		return 1;	err->index = lo;	err->array = 0;	err->type = "value";	return 0;}TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err){	if (def && lua_gettop(L)<abs(lo))		return 1;	if (lua_isnil(L,lo) || lua_isboolean(L,lo))		return 1;	err->index = lo;	err->array = 0;	err->type = "boolean";	return 0;}TOLUA_API int tolua_isnumber (lua_State* L, int lo, int def, tolua_Error* err){	if (def && lua_gettop(L)<abs(lo))		return 1;	if (lua_isnumber(L,lo))		return 1;	err->index = lo;	err->array = 0;	err->type = "number";	return 0;}TOLUA_API int tolua_isstring (lua_State* L, int lo, int def, tolua_Error* err){	if (def && lua_gettop(L)<abs(lo))		return 1; if (lua_isnil(L,lo) || lua_isstring(L,lo))		return 1;	err->index = lo;	err->array = 0;	err->type = "string";	return 0;}TOLUA_API int tolua_istable (lua_State* L, int lo, int def, tolua_Error* err){	if (def && lua_gettop(L)<abs(lo))		return 1;	if (lua_istable(L,lo))		return 1;	err->index = lo;	err->array = 0;	err->type = "table";	return 0;}TOLUA_API int tolua_isusertable (lua_State* L, int lo, const char* type, int def, tolua_Error* err){	if (def && lua_gettop(L)<abs(lo))		return 1;	if (lua_isusertable(L,lo,type))		return 1;	err->index = lo;	err->array = 0;	err->type = type;	return 0;}TOLUA_API int tolua_isuserdata (lua_State* L, int lo, int def, tolua_Error* err){	if (def && lua_gettop(L)<abs(lo))		return 1;	if (lua_isnil(L,lo) || lua_isuserdata(L,lo))		return 1;	err->index = lo;	err->array = 0;	err->type = "userdata";	return 0;}TOLUA_API int tolua_isusertype (lua_State* L, int lo, const char* type, int def, tolua_Error* err){	if (def && lua_gettop(L)<abs(lo))		return 1;	if (lua_isnil(L,lo) || lua_isusertype(L,lo,type))		return 1;	err->index = lo;	err->array = 0;	err->type = type;	return 0;}TOLUA_API int tolua_isvaluearray (lua_State* L, int lo, int dim, int def, tolua_Error* err){	if (!tolua_istable(L,lo,def,err))		return 0;	else		return 1;}TOLUA_API int tolua_isbooleanarray (lua_State* L, int lo, int dim, int def, tolua_Error* err){	if (!tolua_istable(L,lo,def,err))		return 0;	else	{		int i;		for (i=1; i<=dim; ++i)		{			lua_pushnumber(L,i);			lua_gettable(L,lo);	  if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) &&					  !(def && lua_isnil(L,-1))						)			{				err->index = lo;				err->array = 1;				err->type = "boolean";				return 0;			}			lua_pop(L,1);		} } return 1;}TOLUA_API int tolua_isnumberarray (lua_State* L, int lo, int dim, int def, tolua_Error* err){	if (!tolua_istable(L,lo,def,err))		return 0;	else	{		int i;		for (i=1; i<=dim; ++i)		{			lua_pushnumber(L,i);			lua_gettable(L,lo);			if (!lua_isnumber(L,-1) &&					  !(def && lua_isnil(L,-1))						)			{				err->index = lo;				err->array = 1;				err->type = "number";				return 0;			}			lua_pop(L,1);		} } return 1;}TOLUA_API int tolua_isstringarray (lua_State* L, int lo, int dim, int def, tolua_Error* err){	if (!tolua_istable(L,lo,def,err))		return 0;	else	{		int i;		for (i=1; i<=dim; ++i)		{			lua_pushnumber(L,i);			lua_gettable(L,lo);   if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) &&			    !(def && lua_isnil(L,-1))						)			{				err->index = lo;				err->array = 1;				err->type = "string";				return 0;			}			lua_pop(L,1);		} } return 1;}TOLUA_API int tolua_istablearray (lua_State* L, int lo, int dim, int def, tolua_Error* err){	if (!tolua_istable(L,lo,def,err))		return 0;	else	{		int i;		for (i=1; i<=dim; ++i)		{			lua_pushnumber(L,i);			lua_gettable(L,lo);	  if (! lua_istable(L,-1) &&			    !(def && lua_isnil(L,-1))						)			{				err->index = lo;				err->array = 1;				err->type = "table";				return 0;			}			lua_pop(L,1);		} } return 1;}TOLUA_API int tolua_isuserdataarray (lua_State* L, int lo, int dim, int def, tolua_Error* err){	if (!tolua_istable(L,lo,def,err))		return 0;	else	{		int i;		for (i=1; i<=dim; ++i)		{			lua_pushnumber(L,i);			lua_gettable(L,lo);	  if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) &&			    !(def && lua_isnil(L,-1))						)			{				err->index = lo;				err->array = 1;				err->type = "userdata";				return 0;			}			lua_pop(L,1);		} } return 1;}TOLUA_API int tolua_isusertypearray (lua_State* L, int lo, const char* type, int dim, int def, tolua_Error* err){	if (!tolua_istable(L,lo,def,err))		return 0;	else	{		int i;		for (i=1; i<=dim; ++i)		{			lua_pushnumber(L,i);			lua_gettable(L,lo);	  if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) &&			    !(def && lua_isnil(L,-1))						)			{				err->index = lo;				err->type = type;				err->array = 1;				return 0;			}			lua_pop(L,1);		} } return 1;}#if 0int tolua_isbooleanfield (lua_State* L, int lo, int i, int def, tolua_Error* err){	lua_pushnumber(L,i);	lua_gettable(L,lo);	if (!(lua_isnil(L,-1) || lua_isboolean(L,-1)) &&			  !(def && lua_isnil(L,-1))				)	{		err->index = lo;		err->array = 1;		err->type = "boolean";		return 0;	}	lua_pop(L,1); return 1;}int tolua_isnumberfield (lua_State* L, int lo, int i, int def, tolua_Error* err){	lua_pushnumber(L,i);	lua_gettable(L,lo);	if (!lua_isnumber(L,-1) &&			  !(def && lua_isnil(L,-1))				)	{		err->index = lo;		err->array = 1;		err->type = "number";		return 0;	}	lua_pop(L,1); return 1;}int tolua_isstringfield (lua_State* L, int lo, int i, int def, tolua_Error* err){	lua_pushnumber(L,i);	lua_gettable(L,lo); if (!(lua_isnil(L,-1) || lua_isstring(L,-1)) &&	    !(def && lua_isnil(L,-1))				)	{		err->index = lo;		err->array = 1;		err->type = "string";		return 0;	}	lua_pop(L,1); return 1;}int tolua_istablefield (lua_State* L, int lo, int i, int def, tolua_Error* err){	lua_pushnumber(L,i+1);	lua_gettable(L,lo);	if (! lua_istable(L,-1) &&	    !(def && lua_isnil(L,-1))				)	{		err->index = lo;		err->array = 1;		err->type = "table";		return 0;	}	lua_pop(L,1);}int tolua_isusertablefield (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err){	lua_pushnumber(L,i);	lua_gettable(L,lo);	if (! lua_isusertable(L,-1,type) &&	    !(def && lua_isnil(L,-1))				)	{		err->index = lo;		err->array = 1;		err->type = type;		return 0;	}	lua_pop(L,1); return 1;}int tolua_isuserdatafield (lua_State* L, int lo, int i, int def, tolua_Error* err){	lua_pushnumber(L,i);	lua_gettable(L,lo);	if (!(lua_isnil(L,-1) || lua_isuserdata(L,-1)) &&	    !(def && lua_isnil(L,-1))				)	{		err->index = lo;		err->array = 1;		err->type = "userdata";		return 0;	}	lua_pop(L,1); return 1;}int tolua_isusertypefield (lua_State* L, int lo, const char* type, int i, int def, tolua_Error* err){	lua_pushnumber(L,i);	lua_gettable(L,lo);	if (!(lua_isnil(L,-1) || lua_isusertype(L,-1,type)) &&	    !(def && lua_isnil(L,-1))				)	{		err->index = lo;		err->type = type;		err->array = 1;		return 0;	}	lua_pop(L,1); return 1;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩高清不卡| 国产99精品在线观看| 91老司机福利 在线| 亚洲日本在线天堂| 91在线观看高清| 亚洲黄色免费电影| 欧美酷刑日本凌虐凌虐| 久久国产欧美日韩精品| 久久一二三国产| 99精品久久久久久| 午夜精品视频在线观看| 日韩精品专区在线影院观看| 国产成人精品免费网站| 亚洲视频一区在线观看| 欧美老肥妇做.爰bbww视频| 久久av资源网| 亚洲人成精品久久久久| 欧美高清精品3d| 国产一本一道久久香蕉| 亚洲私人影院在线观看| 91麻豆精品国产综合久久久久久| 极品美女销魂一区二区三区免费| 亚洲国产精华液网站w | 国产一区高清在线| 国产精品五月天| 欧美日韩日日摸| 国产一级精品在线| 亚洲综合丝袜美腿| 2022国产精品视频| 欧美在线啊v一区| 精品无人区卡一卡二卡三乱码免费卡| 中文字幕精品一区二区三区精品| 欧美羞羞免费网站| 国产精品一级二级三级| 亚洲午夜私人影院| 欧美激情在线观看视频免费| 精品视频在线免费观看| 国产高清精品在线| 视频一区免费在线观看| 中文字幕精品一区| 日韩视频在线一区二区| 色欧美88888久久久久久影院| 日日夜夜免费精品视频| 最新国产精品久久精品| 精品少妇一区二区三区在线播放| 91麻豆免费在线观看| 国产裸体歌舞团一区二区| 亚洲午夜精品一区二区三区他趣| 国产视频不卡一区| 欧美一区永久视频免费观看| 91在线视频免费91| 国产精品系列在线观看| 毛片av中文字幕一区二区| 亚洲特黄一级片| 国产欧美日产一区| 日韩视频一区二区三区在线播放| 色88888久久久久久影院按摩| 国产精品伊人色| 精品一区二区三区免费播放| 亚洲成av人片在线| 一区二区三区四区高清精品免费观看 | 一区二区成人在线视频| 欧美日韩aaaaaa| 91国模大尺度私拍在线视频| av高清久久久| av在线不卡电影| 国产**成人网毛片九色| 国产精品自拍av| 国产成人日日夜夜| 国产老女人精品毛片久久| 狠狠色丁香久久婷婷综合丁香| 日韩和欧美一区二区| 亚洲成人精品一区二区| 亚洲高清视频的网址| 亚洲一区在线看| 亚洲午夜免费电影| 性做久久久久久久久| 午夜精品福利久久久| 午夜视黄欧洲亚洲| 日韩精品电影一区亚洲| 男女性色大片免费观看一区二区| 日本午夜一本久久久综合| 日一区二区三区| 免费在线一区观看| 久久精品噜噜噜成人av农村| 麻豆精品蜜桃视频网站| 精品一二三四区| 国产一区二区精品久久91| 国产精品一二三在| 成人动漫一区二区三区| 色偷偷久久一区二区三区| 日本韩国精品在线| 欧美日韩国产免费一区二区 | 欧美日韩视频不卡| 欧美一区二区视频在线观看| 日韩欧美一级在线播放| 久久久.com| 亚洲色图一区二区三区| 一区二区高清在线| 麻豆精品一区二区三区| 国产不卡在线播放| 91麻豆免费观看| 91精品国产美女浴室洗澡无遮挡| 欧美刺激脚交jootjob| 国产农村妇女精品| 夜色激情一区二区| 美女视频黄免费的久久 | 国产亚洲午夜高清国产拍精品| 国产精品污网站| 亚洲国产一区二区三区青草影视| 日本不卡123| 粉嫩在线一区二区三区视频| 色av综合在线| 26uuu国产电影一区二区| 中文字幕欧美激情一区| 亚洲成在线观看| 国产麻豆精品一区二区| 色先锋资源久久综合| 精品毛片乱码1区2区3区| 国产精品久久二区二区| 日韩精品一级二级| 中文字幕欧美一| 欧美一区二区三区思思人| 日韩一区二区影院| 国产欧美精品一区二区三区四区| 亚洲综合偷拍欧美一区色| 久久精品国产一区二区三| 97超碰欧美中文字幕| 精品国产欧美一区二区| 自拍偷拍亚洲激情| 国产制服丝袜一区| 欧美日本一区二区在线观看| 国产精品久久久久一区| 久久国产生活片100| 欧美视频一区二| 国产精品久久久久9999吃药| 日本成人中文字幕在线视频| 99热国产精品| 亚洲国产精品99久久久久久久久| 日产国产欧美视频一区精品 | 亚洲欧洲日产国产综合网| 美女视频黄久久| 欧美日韩精品三区| 亚洲图片另类小说| 视频一区中文字幕国产| 在线日韩av片| 久久免费美女视频| 日韩激情视频在线观看| 99精品桃花视频在线观看| 2024国产精品| 免费av网站大全久久| 欧美日韩卡一卡二| 亚洲美女视频在线观看| aaa欧美色吧激情视频| 国产三级一区二区三区| 国产在线播精品第三| 欧美成人伊人久久综合网| 日韩精品免费专区| 4hu四虎永久在线影院成人| 亚洲已满18点击进入久久| 91农村精品一区二区在线| 国产精品亲子乱子伦xxxx裸| 国产精品亚洲专一区二区三区 | 日韩精品一区二区三区视频播放 | 欧美精品一区二区三区一线天视频| 亚洲电影一区二区| 欧洲视频一区二区| 亚洲最大成人综合| 欧美中文一区二区三区| 一区二区三国产精华液| 欧美综合色免费| 亚洲午夜免费电影| 欧美午夜精品一区二区三区| 亚洲国产一区二区三区青草影视| 欧美丝袜丝交足nylons图片| 亚洲图片欧美综合| 69堂成人精品免费视频| 美女被吸乳得到大胸91| 精品粉嫩超白一线天av| 国产精品白丝jk黑袜喷水| 国产精品久久久久久久久快鸭| 91视频国产资源| 亚洲一区在线观看视频| 欧美精品乱码久久久久久按摩| 调教+趴+乳夹+国产+精品| 91精品国产乱| 国产剧情av麻豆香蕉精品| 国产精品无人区| 色狠狠桃花综合| 青青草原综合久久大伊人精品 | 久久久久9999亚洲精品| 国产jizzjizz一区二区| 亚洲视频中文字幕| 欧美一区欧美二区| 国产一区二区精品在线观看| 1区2区3区精品视频| 欧美精品123区| 国产麻豆日韩欧美久久| 亚洲精品成人精品456| 91精品蜜臀在线一区尤物|