这篇教程C++ strdata函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中strdata函数的典型用法代码示例。如果您正苦于以下问题:C++ strdata函数的具体用法?C++ strdata怎么用?C++ strdata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了strdata函数的21个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: lj_str_cmp/* Ordered compare of strings. Assumes string data is 4-byte aligned. */int32_t LJ_FASTCALL lj_str_cmp(GCstr *a, GCstr *b){ MSize i, n = a->len > b->len ? b->len : a->len; for (i = 0; i < n; i += 4) { /* Note: innocuous access up to end of string + 3. */ uint32_t va = *(const uint32_t *)(strdata(a)+i); uint32_t vb = *(const uint32_t *)(strdata(b)+i); if (va != vb) {#if LJ_LE va = lj_bswap(va); vb = lj_bswap(vb);#endif i -= n; if ((int32_t)i >= -3) { va >>= 32+(i<<3); vb >>= 32+(i<<3); if (va == vb) break; } return va < vb ? -1 : 1; }
开发者ID:torch,项目名称:luajit-rocks,代码行数:19,
示例2: ffi_checkctype/* Check first argument for a C type and returns its ID. */static CTypeID ffi_checkctype(lua_State *L, CTState *cts, TValue *param){ TValue *o = L->base; if (!(o < L->top)) { err_argtype: lj_err_argtype(L, 1, "C type"); } if (tvisstr(o)) { /* Parse an abstract C type declaration. */ GCstr *s = strV(o); CPState cp; int errcode; cp.L = L; cp.cts = cts; cp.srcname = strdata(s); cp.p = strdata(s); cp.param = param; cp.mode = CPARSE_MODE_ABSTRACT|CPARSE_MODE_NOIMPLICIT; errcode = lj_cparse(&cp); if (errcode) lj_err_throw(L, errcode); /* Propagate errors. */ return cp.val.id; } else { GCcdata *cd; if (!tviscdata(o)) goto err_argtype; if (param && param < L->top) lj_err_arg(L, 1, LJ_ERR_FFI_NUMPARAM); cd = cdataV(o); return cd->ctypeid == CTID_CTYPEID ? *(CTypeID *)cdataptr(cd) : cd->ctypeid; }}
开发者ID:chengjunjian,项目名称:nginx-openresty-windows,代码行数:29,
示例3: ctype_get/* Get redirected or mangled external symbol. */static const char *clib_extsym(CTState *cts, CType *ct, GCstr *name){ if (ct->sib) { CType *ctf = ctype_get(cts, ct->sib); if (ctype_isxattrib(ctf->info, CTA_REDIR)) return strdata(gco2str(gcref(ctf->name))); } return strdata(name);}
开发者ID:BillTheBest,项目名称:ironbee,代码行数:10,
示例4: cconv_err_conv/* Bad conversion. */LJ_NORET static void cconv_err_conv(CTState *cts, CType *d, CType *s, CTInfo flags){ const char *dst = strdata(lj_ctype_repr(cts->L, ctype_typeid(cts, d), NULL)); const char *src; if ((flags & CCF_FROMTV)) src = lj_obj_typename[1+(ctype_isnum(s->info) ? LUA_TNUMBER : ctype_isarray(s->info) ? LUA_TSTRING : LUA_TNIL)]; else src = strdata(lj_ctype_repr(cts->L, ctype_typeid(cts, s), NULL)); if (CCF_GETARG(flags)) lj_err_argv(cts->L, CCF_GETARG(flags), LJ_ERR_FFI_BADCONV, src, dst); else lj_err_callerv(cts->L, LJ_ERR_FFI_BADCONV, src, dst);}
开发者ID:24BitGames,项目名称:LoomSDK,代码行数:16,
示例5: ffi_index_meta/* Handle ctype __index/__newindex metamethods. */static int ffi_index_meta(lua_State *L, CTState *cts, CType *ct, MMS mm){ CTypeID id = ctype_typeid(cts, ct); cTValue *tv = lj_ctype_meta(cts, id, mm); TValue *base = L->base; if (!tv) { const char *s; err_index: s = strdata(lj_ctype_repr(L, id, NULL)); if (tvisstr(L->base+1)) lj_err_callerv(L, LJ_ERR_FFI_BADMEMBER, s, strVdata(L->base+1)); else lj_err_callerv(L, LJ_ERR_FFI_BADIDX, s); } if (!tvisfunc(tv)) { if (mm == MM_index) { cTValue *o = lj_meta_tget(L, tv, base+1); if (o) { if (tvisnil(o)) goto err_index; copyTV(L, L->top-1, o); return 1; } } else { TValue *o = lj_meta_tset(L, tv, base+1); if (o) { copyTV(L, o, base+2); return 0; } } tv = L->top-1; } return lj_meta_tailcall(L, tv);}
开发者ID:JakSprats,项目名称:Alchemy-Database,代码行数:34,
示例6: ifs Shader::Shader(GLenum Type,std::string filename) { shader_type = Type; std::ifstream ifs(filename); if(!ifs) throw(std::runtime_error("File:"+filename+" not opened.")); std::ostringstream stream; stream<<ifs.rdbuf(); std::string strdata = stream.str(); const GLchar* data = strdata.c_str(); handle = glCreateShader(shader_type); glShaderSource(handle,1,static_cast<const GLchar**> (&data),0); glCompileShader(handle); int status; glGetShaderiv(handle,GL_COMPILE_STATUS,&status); if(status == GL_FALSE) { int loglength; glGetShaderiv(handle,GL_INFO_LOG_LENGTH,&loglength); auto data = new char[loglength]; glGetShaderInfoLog(handle,loglength,&loglength,data); std::string strdata(data); delete [] data; throw(std::runtime_error(strdata)); } }
开发者ID:manasij7479,项目名称:flake,代码行数:34,
示例7: strdatastatic IOFileUD *io_file_open(lua_State *L, const char *mode){ const char *fname = strdata(lj_lib_checkstr(L, 1)); IOFileUD *iof = io_file_new(L); iof->fp = fopen(fname, mode); if (iof->fp == NULL) luaL_argerror(L, 1, lj_str_pushf(L, "%s: %s", fname, strerror(errno))); return iof;}
开发者ID:derdewey,项目名称:luajit,代码行数:9,
示例8: cconv_err_convtv/* Bad conversion from TValue. */LJ_NORET static void cconv_err_convtv(CTState *cts, CType *d, TValue *o, CTInfo flags){ const char *dst = strdata(lj_ctype_repr(cts->L, ctype_typeid(cts, d), NULL)); const char *src = lj_typename(o); if (CCF_GETARG(flags)) lj_err_argv(cts->L, CCF_GETARG(flags), LJ_ERR_FFI_BADCONV, src, dst); else lj_err_callerv(cts->L, LJ_ERR_FFI_BADCONV, src, dst);}
开发者ID:24BitGames,项目名称:LoomSDK,代码行数:11,
示例9: lj_tab_setstr/* Index a C library by name. */TValue *lj_clib_index(lua_State *L, CLibrary *cl, GCstr *name){ TValue *tv = lj_tab_setstr(L, cl->cache, name); if (LJ_UNLIKELY(tvisnil(tv))) { CTState *cts = ctype_cts(L); CType *ct; CTypeID id = lj_ctype_getname(cts, &ct, name, CLNS_INDEX); if (!id) lj_err_callerv(L, LJ_ERR_FFI_NODECL, strdata(name)); if (ctype_isconstval(ct->info)) { CType *ctt = ctype_child(cts, ct); lua_assert(ctype_isinteger(ctt->info) && ctt->size <= 4); if ((ctt->info & CTF_UNSIGNED) && ctt->size == 4) setnumV(tv, (lua_Number)(uint32_t)ct->size); else setnumV(tv, (lua_Number)(int32_t)ct->size); } else { const char *sym = clib_extsym(cts, ct, name); void *p = clib_getsym(cl, sym); GCcdata *cd; lua_assert(ctype_isfunc(ct->info) || ctype_isextern(ct->info));#if LJ_TARGET_X86 && LJ_ABI_WIN /* Retry with decorated name for fastcall/stdcall functions. */ if (!p && ctype_isfunc(ct->info)) { CTInfo cconv = ctype_cconv(ct->info); if (cconv == CTCC_FASTCALL || cconv == CTCC_STDCALL) { CTSize sz = clib_func_argsize(cts, ct); sym = lj_str_pushf(L, cconv == CTCC_FASTCALL ? "@%[email C++ strdupW函数代码示例 C++ strcpypgm2ram函数代码示例
|