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

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

?? tolua_map.c

?? tolua++是一個對lua進行封裝調用的工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* tolua: functions to map features** 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 "tolua_event.h"#include "lauxlib.h"#include <string.h>#include <stdio.h>#include <stdlib.h>#include <math.h>/* Create metatable	* Create and register new metatable*/static int tolua_newmetatable (lua_State* L, char* name){	int r = luaL_newmetatable(L,name);	#ifdef LUA_VERSION_NUM /* only lua 5.1 */	if (r) {		lua_pushvalue(L, -1);		lua_pushstring(L, name);		lua_settable(L, LUA_REGISTRYINDEX); /* reg[mt] = type_name */	};	#endif	if (r)		tolua_classevents(L); /* set meta events */	lua_pop(L,1);	return r;}/* Map super classes	* It sets 'name' as being also a 'base', mapping all super classes of 'base' in 'name'*/static void mapsuper (lua_State* L, const char* name, const char* base){	/* push registry.super */ lua_pushstring(L,"tolua_super"); lua_rawget(L,LUA_REGISTRYINDEX);    /* stack: super */	luaL_getmetatable(L,name);          /* stack: super mt */ lua_rawget(L,-2);                   /* stack: super table */	if (lua_isnil(L,-1))	{	 /* create table */		lua_pop(L,1);	 lua_newtable(L);                    /* stack: super table */	 luaL_getmetatable(L,name);          /* stack: super table mt */		lua_pushvalue(L,-2);                /* stack: super table mt table */		lua_rawset(L,-4);                   /* stack: super table */	}	/* set base as super class */	lua_pushstring(L,base);	lua_pushboolean(L,1);	lua_rawset(L,-3);                    /* stack: super table */	/* set all super class of base as super class of name */	luaL_getmetatable(L,base);          /* stack: super table base_mt */	lua_rawget(L,-3);                   /* stack: super table base_table */	if (lua_istable(L,-1))	{		/* traverse base table */		lua_pushnil(L);  /* first key */		while (lua_next(L,-2) != 0)		{			/* stack: ... base_table key value */			lua_pushvalue(L,-2);    /* stack: ... base_table key value key */			lua_insert(L,-2);       /* stack: ... base_table key key value */			lua_rawset(L,-5);       /* stack: ... base_table key */		}	}	lua_pop(L,3);                       /* stack: <empty> */}/* creates a 'tolua_ubox' table for base clases, and// expects the metatable and base metatable on the stack */static void set_ubox(lua_State* L) {	/* mt basemt */	if (!lua_isnil(L, -1)) {		lua_pushstring(L, "tolua_ubox");		lua_rawget(L,-2);	} else {		lua_pushnil(L);	};	/* mt basemt base_ubox */	if (!lua_isnil(L,-1)) {		lua_pushstring(L, "tolua_ubox");		lua_insert(L, -2);		/* mt basemt key ubox */		lua_rawset(L,-4);		/* (mt with ubox) basemt */	} else {		/* mt basemt nil */		lua_pop(L, 1);		lua_pushstring(L,"tolua_ubox"); lua_newtable(L);		/* make weak value metatable for ubox table to allow userdata to be		garbage-collected */		lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3);               /* stack: string ubox mt */		lua_setmetatable(L, -2);  /* stack:mt basemt string ubox */		lua_rawset(L,-4);	};};/* Map inheritance	* It sets 'name' as derived from 'base' by setting 'base' as metatable of 'name'*/static void mapinheritance (lua_State* L, const char* name, const char* base){	/* set metatable inheritance */	luaL_getmetatable(L,name);	if (base && *base)		luaL_getmetatable(L,base);	else {		if (lua_getmetatable(L, -1)) { /* already has a mt, we don't overwrite it */			lua_pop(L, 2);			return;		};		luaL_getmetatable(L,"tolua_commonclass");	};	set_ubox(L);	lua_setmetatable(L,-2);	lua_pop(L,1);}/* Object type*/static int tolua_bnd_type (lua_State* L){	tolua_typename(L,lua_gettop(L));	return 1;}/* Take ownership*/static int tolua_bnd_takeownership (lua_State* L){	int success = 0;	if (lua_isuserdata(L,1))	{		if (lua_getmetatable(L,1))        /* if metatable? */		{			lua_pop(L,1);             /* clear metatable off stack */			/* force garbage collection to avoid C to reuse a to-be-collected address */			#ifdef LUA_VERSION_NUM			lua_gc(L, LUA_GCCOLLECT, 0);			#else			lua_setgcthreshold(L,0);			#endif			success = tolua_register_gc(L,1);		}	}	lua_pushboolean(L,success!=0);	return 1;}/* Release ownership*/static int tolua_bnd_releaseownership (lua_State* L){	int done = 0;	if (lua_isuserdata(L,1))	{		void* u = *((void**)lua_touserdata(L,1));		/* force garbage collection to avoid releasing a to-be-collected address */		#ifdef LUA_VERSION_NUM		lua_gc(L, LUA_GCCOLLECT, 0);		#else		lua_setgcthreshold(L,0);		#endif		lua_pushstring(L,"tolua_gc");		lua_rawget(L,LUA_REGISTRYINDEX);		lua_pushlightuserdata(L,u);		lua_rawget(L,-2);		lua_getmetatable(L,1);		if (lua_rawequal(L,-1,-2))  /* check that we are releasing the correct type */		{			lua_pushlightuserdata(L,u);			lua_pushnil(L);			lua_rawset(L,-5);			done = 1;		}	}	lua_pushboolean(L,done!=0);	return 1;}/* Type casting*/static int tolua_bnd_cast (lua_State* L){/* // old code        void* v = tolua_tousertype(L,1,NULL);        const char* s = tolua_tostring(L,2,NULL);        if (v && s)         tolua_pushusertype(L,v,s);        else         lua_pushnil(L);        return 1;*/	void* v;	const char* s;	if (lua_islightuserdata(L, 1)) {		v = tolua_touserdata(L, 1, NULL);	} else {		v = tolua_tousertype(L, 1, 0);	};	s = tolua_tostring(L,2,NULL);	if (v && s)	 tolua_pushusertype(L,v,s);	else	 lua_pushnil(L);	return 1;}/* Inheritance*/static int tolua_bnd_inherit (lua_State* L) {	/* stack: lua object, c object */	lua_pushstring(L, ".c_instance");	lua_pushvalue(L, -2);	lua_rawset(L, -4);	/* l_obj[".c_instance"] = c_obj */	return 0;};#ifdef LUA_VERSION_NUM /* lua 5.1 */static int tolua_bnd_setpeer(lua_State* L) {	/* stack: userdata, table */	if (!lua_isuserdata(L, -2)) {		lua_pushstring(L, "Invalid argument #1 to setpeer: userdata expected.");		lua_error(L);	};		if (lua_isnil(L, -1)) {		lua_pop(L, 1);		lua_pushvalue(L, TOLUA_NOPEER);	};	lua_setfenv(L, -2);	return 0;};static int tolua_bnd_getpeer(lua_State* L) {	/* stack: userdata */	lua_getfenv(L, -1);	if (lua_rawequal(L, -1, TOLUA_NOPEER)) {		lua_pop(L, 1);		lua_pushnil(L);	};	return 1;};#endif/* static int class_gc_event (lua_State* L); */TOLUA_API void tolua_open (lua_State* L){ int top = lua_gettop(L); lua_pushstring(L,"tolua_opened"); lua_rawget(L,LUA_REGISTRYINDEX); if (!lua_isboolean(L,-1)) {  lua_pushstring(L,"tolua_opened"); lua_pushboolean(L,1); lua_rawset(L,LUA_REGISTRYINDEX);  #ifndef LUA_VERSION_NUM /* only prior to lua 5.1 */  /* create peer object table */  lua_pushstring(L, "tolua_peers"); lua_newtable(L);  /* make weak key metatable for peers indexed by userdata object */  lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "k"); lua_rawset(L, -3);                /* stack: string peers mt */  lua_setmetatable(L, -2);   /* stack: string peers */  lua_rawset(L,LUA_REGISTRYINDEX);  #endif  /* create object ptr -> udata mapping table */  lua_pushstring(L,"tolua_ubox"); lua_newtable(L);  /* make weak value metatable for ubox table to allow userdata to be     garbage-collected */  lua_newtable(L); lua_pushliteral(L, "__mode"); lua_pushliteral(L, "v"); lua_rawset(L, -3);               /* stack: string ubox mt */  lua_setmetatable(L, -2);  /* stack: string ubox */  lua_rawset(L,LUA_REGISTRYINDEX);  lua_pushstring(L,"tolua_super"); lua_newtable(L); lua_rawset(L,LUA_REGISTRYINDEX);  lua_pushstring(L,"tolua_gc"); lua_newtable(L);lua_rawset(L,LUA_REGISTRYINDEX);  /* create gc_event closure */  lua_pushstring(L, "tolua_gc_event");  lua_pushstring(L, "tolua_gc");  lua_rawget(L, LUA_REGISTRYINDEX);  lua_pushstring(L, "tolua_super");  lua_rawget(L, LUA_REGISTRYINDEX);  lua_pushcclosure(L, class_gc_event, 2);  lua_rawset(L, LUA_REGISTRYINDEX);  tolua_newmetatable(L,"tolua_commonclass");  tolua_module(L,NULL,0);  tolua_beginmodule(L,NULL);  tolua_module(L,"tolua",0);  tolua_beginmodule(L,"tolua");  tolua_function(L,"type",tolua_bnd_type);  tolua_function(L,"takeownership",tolua_bnd_takeownership);  tolua_function(L,"releaseownership",tolua_bnd_releaseownership);  tolua_function(L,"cast",tolua_bnd_cast);  tolua_function(L,"inherit", tolua_bnd_inherit);  #ifdef LUA_VERSION_NUM /* lua 5.1 */  tolua_function(L, "setpeer", tolua_bnd_setpeer);  tolua_function(L, "getpeer", tolua_bnd_getpeer);  #endif  tolua_endmodule(L);  tolua_endmodule(L); } lua_settop(L,top);}/* Copy a C object*/TOLUA_API void* tolua_copy (lua_State* L, void* value, unsigned int size){	void* clone = (void*)malloc(size);	if (clone)	 memcpy(clone,value,size);	else		tolua_error(L,"insuficient memory",NULL);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产黄色精品网站| 精品国产麻豆免费人成网站| 欧美剧情电影在线观看完整版免费励志电影 | 最新国产成人在线观看| 午夜精品福利久久久| 成人亚洲一区二区一| 欧美一区二区三区小说| 亚洲情趣在线观看| 国产精品亚洲专一区二区三区| 在线一区二区视频| 国产精品视频免费看| 蜜臀av一区二区| 欧美视频一区二区在线观看| 中文子幕无线码一区tr| 精品一区二区在线免费观看| 欧美亚洲国产bt| 亚洲欧美成人一区二区三区| 国产精品亚洲人在线观看| 欧美精品在线观看播放| 一区二区三区欧美日| 99久久国产免费看| 亚洲视频一区在线| 国产成人精品影视| 久久亚洲综合色一区二区三区| 午夜国产不卡在线观看视频| 日本韩国一区二区| 国产精品动漫网站| 成人黄色网址在线观看| 国产日韩亚洲欧美综合| 国产乱色国产精品免费视频| 欧美精品一区二区在线观看| 麻豆国产精品官网| 日韩精品一区在线观看| 麻豆专区一区二区三区四区五区| 欧美精品1区2区| 天天色图综合网| 欧美欧美午夜aⅴ在线观看| 一区二区三区在线高清| 日本久久精品电影| 亚洲国产美女搞黄色| 欧美在线视频全部完| 亚洲国产三级在线| 欧美日韩小视频| 日本女人一区二区三区| 日韩欧美一二三| 国内精品伊人久久久久av影院| 精品国产1区二区| 国产成人在线网站| 中文字幕一区二区三| 日本高清不卡一区| 日韩中文字幕亚洲一区二区va在线| 欧美亚州韩日在线看免费版国语版| 亚洲国产日韩综合久久精品| 69精品人人人人| 九色porny丨国产精品| 久久久久国产精品免费免费搜索| 成人一级视频在线观看| 亚洲视频香蕉人妖| 欧美丰满少妇xxxbbb| 极品少妇xxxx精品少妇偷拍| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品亚洲成人| 亚洲精品国产成人久久av盗摄| 欧美三级资源在线| 黄页网站大全一区二区| 亚洲色图在线播放| 日韩视频一区二区三区在线播放| 国产一区二区三区四区五区美女| 国产目拍亚洲精品99久久精品| 欧美日韩一区不卡| 久久66热re国产| 中文字幕亚洲区| 91精品国产综合久久精品app| 激情小说亚洲一区| 亚洲男人天堂一区| 欧美成人精品3d动漫h| 99国产精品视频免费观看| 午夜精品久久久久久久久| 久久亚洲二区三区| 欧美亚洲国产怡红院影院| 久久国产麻豆精品| 伊人婷婷欧美激情| 国产亚洲精品资源在线26u| 91视频在线观看免费| 久久精品72免费观看| 亚洲视频一区在线| 久久蜜桃av一区二区天堂| 色婷婷激情综合| 国产成人在线电影| 免费日韩伦理电影| 亚洲欧美国产三级| www久久久久| 6080日韩午夜伦伦午夜伦| 成人丝袜视频网| 韩国av一区二区三区在线观看| 国产精品国产精品国产专区不片| 精品欧美黑人一区二区三区| 欧美三级三级三级| 91亚洲精品乱码久久久久久蜜桃| 狠狠色丁香久久婷婷综合_中| 亚洲高清视频的网址| 中文字幕佐山爱一区二区免费| 久久综合色鬼综合色| 欧美一区二区三区思思人| 一本大道综合伊人精品热热 | 欧美精品电影在线播放| 91免费观看视频在线| 国产高清精品在线| 精品亚洲aⅴ乱码一区二区三区| 一区二区三区丝袜| 《视频一区视频二区| 欧美国产日本韩| 国产日韩精品一区二区三区 | 国产美女娇喘av呻吟久久 | 国产精品成人免费在线| 国产欧美视频一区二区| 国产三级欧美三级| 国产午夜精品理论片a级大结局| 日韩精品一区二区三区四区| 欧美一区二区三区视频在线观看| 欧美精品久久久久久久久老牛影院| 欧美怡红院视频| 欧美日韩三级一区| 欧美日韩一级片在线观看| 欧美午夜精品久久久久久孕妇| 91国偷自产一区二区使用方法| 91免费精品国自产拍在线不卡| 波多野结衣一区二区三区| 成年人网站91| 色成年激情久久综合| 欧美色综合影院| 91精品综合久久久久久| 日韩三级中文字幕| 久久久久成人黄色影片| 中文字幕av不卡| 亚洲色图欧洲色图| 日韩激情视频在线观看| 九色综合国产一区二区三区| 国产高清在线观看免费不卡| 99精品视频在线免费观看| 在线精品视频免费播放| 91精品午夜视频| 国产欧美综合在线观看第十页| 亚洲天堂a在线| 午夜精品久久久久久久久久久| 久久激情五月婷婷| 不卡一区二区在线| 欧美欧美午夜aⅴ在线观看| 91精品一区二区三区久久久久久| 久久久久久久久伊人| 亚洲图片欧美激情| 免费精品视频在线| 成人av电影免费在线播放| 欧美绝品在线观看成人午夜影视| 久久婷婷一区二区三区| 亚洲黄一区二区三区| 麻豆精品精品国产自在97香蕉| 成人午夜视频在线观看| 欧美日韩国产美| 欧美韩国日本综合| 日韩电影免费在线| 99精品视频在线观看| 欧美mv和日韩mv国产网站| 亚洲欧美日韩国产成人精品影院 | 亚洲三级在线免费| 美女精品自拍一二三四| 99精品视频在线免费观看| 日韩欧美综合在线| 亚洲激情中文1区| 国产成人免费视频网站| 欧美日韩高清影院| 中文字幕制服丝袜成人av| 蜜桃视频在线观看一区| 色哟哟国产精品| 久久精品水蜜桃av综合天堂| 性做久久久久久免费观看| 成人av网站在线观看| 精品少妇一区二区三区免费观看 | aaa亚洲精品一二三区| 日韩一级片在线观看| 亚洲一区在线看| 99久久99久久久精品齐齐| 久久精品一区蜜桃臀影院| 日本不卡视频在线| 欧美日韩视频专区在线播放| 亚洲视频免费在线观看| 国产成人精品一区二区三区网站观看| 欧美欧美午夜aⅴ在线观看| 亚洲欧美日本韩国| 成人美女视频在线观看| 久久五月婷婷丁香社区| 久久99久久99小草精品免视看| 精品1区2区3区| 亚洲激情自拍视频| 91免费观看在线| 久久精品国产色蜜蜜麻豆| 5566中文字幕一区二区电影 | 在线观看日韩电影| 亚洲精品高清在线| 91丨porny丨首页|