本文整理汇总了C++中buffonstack函数的典型用法代码示例。如果您正苦于以下问题:C++ buffonstack函数的具体用法?C++ buffonstack怎么用?C++ buffonstack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了buffonstack函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: luaL_addvalue
void luaL_addvalue (luaL_Buffer *B) {
LuaThread *L = B->L;
size_t l;
const char *s = lua_tolstring(L, -1, &l);
if (buffonstack(B))
lua_insert(L, -2); /* put value below buffer */
luaL_addlstring(B, s, l);
L->stack_.remove((buffonstack(B)) ? -2 : -1); /* remove value */
}
开发者ID:aappleby,项目名称:Lumina,代码行数:9,代码来源:lauxlib.cpp
示例2: luaL_addvalue
LUALIB_API void luaL_addvalue (luaL_Buffer *B) {
lua_State *L = B->L;
size_t l;
const char *s = lua_tolstring(L, -1, &l);
if (buffonstack(B))
lua_insert(L, -2); /* put value below buffer */
luaL_addlstring(B, s, l);
lua_remove(L, (buffonstack(B)) ? -2 : -1); /* remove value */
}
开发者ID:dhrebeniuk,项目名称:linosity,代码行数:9,代码来源:lauxlib.c
示例3: luaL_pushresult
LUALIB_API void luaL_pushresult (luaL_Buffer *B)
{
lua_State *L = B->L;
lua_pushlstring(L, B->b, B->n);
if (buffonstack(B))
lua_remove(L, -2); /* remove old buffer */
}
开发者ID:AlanZheng,项目名称:aLua,代码行数:7,代码来源:lauxlib.c
示例4: luaL_pushresult
LUALIB_API void luaL_pushresult (luaL_Buffer *B) {
lua_State *L = B->L;
lua_pushlstring(L, B->b, B->n);
if (buffonstack(B)) {
resizebox(L, -2, 0); /* delete old buffer */
lua_remove(L, -2); /* remove its header from the stack */
}
}
开发者ID:goolic,项目名称:tup,代码行数:8,代码来源:lauxlib.c
示例5: luaL_pushresult
LUALIB_API void luaL_pushresult (luaL_Buffer *B) {
lua_State *L = B->L;
lua_pushlstring(L, B->b, B->n);
if (buffonstack(B)) {
lua_copy(L, -1, -3); /* move string to reserved slot */
lua_pop(L, 2); /* pop string and box (closing the box) */
}
}
开发者ID:lua,项目名称:lua,代码行数:8,代码来源:lauxlib.c
示例6: luaL_error
/*
** returns a pointer to a free area with at least 'sz' bytes
*/
LUALIB_API char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz) {
lua_State *L = B->L;
if (B->size - B->n < sz) { /* not enough space? */
char *newbuff;
size_t newsize = B->size * 2; /* double buffer size */
if (newsize - B->n < sz) /* not bit enough? */
newsize = B->n + sz;
if (newsize < B->n || newsize - B->n < sz)
luaL_error(L, "buffer too large");
/* create larger buffer */
newbuff = (char *)lua_newuserdata(L, newsize * sizeof(char));
/* move content to new buffer */
memcpy(newbuff, B->b, B->n * sizeof(char));
if (buffonstack(B))
lua_remove(L, -2); /* remove old buffer */
B->b = newbuff;
B->size = newsize;
}
return &B->b[B->n];
}
开发者ID:dhrebeniuk,项目名称:linosity,代码行数:23,代码来源:lauxlib.c
示例7: luaL_error
/*
** returns a pointer to a free area with at least 'sz' bytes
*/
LUALIB_API char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz) {
lua_State *L = B->L;
if (B->size - B->n < sz) { /* not enough space? */
char *newbuff;
size_t newsize = B->size * 2; /* double buffer size */
if (newsize - B->n < sz) /* not big enough? */
newsize = B->n + sz;
if (newsize < B->n || newsize - B->n < sz)
luaL_error(L, "buffer too large");
/* create larger buffer */
if (buffonstack(B))
newbuff = (char *)resizebox(L, -1, newsize);
else { /* no buffer yet */
newbuff = (char *)newbox(L, newsize);
memcpy(newbuff, B->b, B->n * sizeof(char)); /* copy original content */
}
B->b = newbuff;
B->size = newsize;
}
return &B->b[B->n];
}
开发者ID:goolic,项目名称:tup,代码行数:24,代码来源:lauxlib.c
示例8: newbuffsize
/*
** Returns a pointer to a free area with at least 'sz' bytes in buffer
** 'B'. 'boxidx' is the relative position in the stack where the
** buffer's box is or should be.
*/
static char *prepbuffsize (luaL_Buffer *B, size_t sz, int boxidx) {
if (B->size - B->n >= sz) /* enough space? */
return B->b + B->n;
else {
lua_State *L = B->L;
char *newbuff;
size_t newsize = newbuffsize(B, sz);
/* create larger buffer */
if (buffonstack(B)) /* buffer already has a box? */
newbuff = (char *)resizebox(L, boxidx, newsize); /* resize it */
else { /* no box yet */
lua_pushnil(L); /* reserve slot for final result */
newbox(L); /* create a new box */
/* move box (and slot) to its intended position */
lua_rotate(L, boxidx - 1, 2);
lua_toclose(L, boxidx);
newbuff = (char *)resizebox(L, boxidx, newsize);
memcpy(newbuff, B->b, B->n * sizeof(char)); /* copy original content */
}
B->b = newbuff;
B->size = newsize;
return newbuff + B->n;
}
}
开发者ID:lua,项目名称:lua,代码行数:29,代码来源:lauxlib.c
示例9: luaL_pushresult
void luaL_pushresult (luaL_Buffer *B) {
LuaThread *L = B->L;
lua_pushlstring(L, B->b, B->n);
if (buffonstack(B))
L->stack_.remove(-2); /* remove old buffer */
}
开发者ID:aappleby,项目名称:Lumina,代码行数:6,代码来源:lauxlib.cpp
注:本文中的buffonstack函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论