• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ buffonstack函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ bufinit函数代码示例发布时间:2022-05-30
下一篇:
C++ bufferevent_write函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap