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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ltable.c

?? 這個(gè)是一個(gè)嵌入式腳本支持引擎, 體積十分小巧
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
static void resize (lua_State *L, Table *t, int nasize, int nhsize) {  int i;  int oldasize = t->sizearray;  int oldhsize = t->lsizenode;  Node *nold = t->node;  /* save old hash ... */  if (nasize > oldasize)  /* array part must grow? */    setarrayvector(L, t, nasize);  /* create new hash part with appropriate size */  setnodevector(L, t, nhsize);    if (nasize < oldasize) {  /* array part must shrink? */    t->sizearray = nasize;    /* re-insert elements from vanishing slice */    for (i=nasize; i<oldasize; i++) {      if (!ttisnil(&t->array[i]))        setobjt2t(L, luaH_setnum(L, t, i+1), &t->array[i]);    }    /* shrink array */    luaM_reallocvector(L, t->array, oldasize, nasize, TValue);  }  /* re-insert elements from hash part */  for (i = twoto(oldhsize) - 1; i >= 0; i--) {    Node *old = nold+i;    if (!ttisnil(gval(old)))      setobjt2t(L, luaH_set(L, t, key2tval(old)), gval(old));  }  if (nold != dummynode)    luaM_freearray(L, nold, twoto(oldhsize), Node);  /* free old array */}void luaH_resizearray (lua_State *L, Table *t, int nasize) {  int nsize = (t->node == dummynode) ? 0 : sizenode(t);  resize(L, t, nasize, nsize);}static void rehash (lua_State *L, Table *t, const TValue *ek) {  int nasize, na;  int nums[MAXBITS+1];  /* nums[i] = number of keys between 2^(i-1) and 2^i */  int i;  int totaluse;  for (i=0; i<=MAXBITS; i++) nums[i] = 0;  /* reset counts */  nasize = numusearray(t, nums);  /* count keys in array part */  totaluse = nasize;  /* all those keys are integer keys */  totaluse += numusehash(t, nums, &nasize);  /* count keys in hash part */  /* count extra key */  nasize += countint(ek, nums);  totaluse++;  /* compute new size for array part */  na = computesizes(nums, &nasize);  /* resize the table to new computed sizes */  resize(L, t, nasize, totaluse - na);}/*** }=============================================================*/Table *luaH_new (lua_State *L, int narray, int nhash) {  Table *t = luaM_new(L, Table);  luaC_link(L, obj2gco(t), LUA_TTABLE);  t->metatable = NULL;  t->flags = cast_byte(~0);  /* temporary values (kept only if some malloc fails) */  t->array = NULL;  t->sizearray = 0;  t->lsizenode = 0;  t->node = cast(Node *, dummynode);  setarrayvector(L, t, narray);  setnodevector(L, t, nhash);  return t;}void luaH_free (lua_State *L, Table *t) {  if (t->node != dummynode)    luaM_freearray(L, t->node, sizenode(t), Node);  luaM_freearray(L, t->array, t->sizearray, TValue);  luaM_free(L, t);}static Node *getfreepos (Table *t) {  while (t->lastfree-- > t->node) {    if (ttisnil(gkey(t->lastfree)))      return t->lastfree;  }  return NULL;  /* could not find a free place */}/*** inserts a new key into a hash table; first, check whether key's main ** position is free. If not, check whether colliding node is in its main ** position or not: if it is not, move colliding node to an empty place and ** put new key in its main position; otherwise (colliding node is in its main ** position), new key goes to an empty position. */static TValue *newkey (lua_State *L, Table *t, const TValue *key) {  Node *mp = mainposition(t, key);  if (!ttisnil(gval(mp)) || mp == dummynode) {    Node *othern;    Node *n = getfreepos(t);  /* get a free place */    if (n == NULL) {  /* cannot find a free place? */      rehash(L, t, key);  /* grow table */      return luaH_set(L, t, key);  /* re-insert key into grown table */    }    lua_assert(n != dummynode);    othern = mainposition(t, key2tval(mp));    if (othern != mp) {  /* is colliding node out of its main position? */      /* yes; move colliding node into free position */      while (gnext(othern) != mp) othern = gnext(othern);  /* find previous */      gnext(othern) = n;  /* redo the chain with `n' in place of `mp' */      *n = *mp;  /* copy colliding node into free pos. (mp->next also goes) */      gnext(mp) = NULL;  /* now `mp' is free */      setnilvalue(gval(mp));    }    else {  /* colliding node is in its own main position */      /* new node will go into free position */      gnext(n) = gnext(mp);  /* chain new position */      gnext(mp) = n;      mp = n;    }  }  gkey(mp)->value = key->value; gkey(mp)->tt = key->tt;  luaC_barriert(L, t, key);  lua_assert(ttisnil(gval(mp)));  return gval(mp);}/*** search function for integers*/const TValue *luaH_getnum (Table *t, int key) {  /* (1 <= key && key <= t->sizearray) */  if (cast(unsigned int, key-1) < cast(unsigned int, t->sizearray))    return &t->array[key-1];  else {    lua_Number nk = cast_num(key);    Node *n = hashnum(t, nk);    do {  /* check whether `key' is somewhere in the chain */      if (ttisnumber(gkey(n)) && luai_numeq(nvalue(gkey(n)), nk))        return gval(n);  /* that's it */      else n = gnext(n);    } while (n);    return luaO_nilobject;  }}/*** search function for strings*/const TValue *luaH_getstr (Table *t, TString *key) {  Node *n = hashstr(t, key);  do {  /* check whether `key' is somewhere in the chain */    if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key)      return gval(n);  /* that's it */    else n = gnext(n);  } while (n);  return luaO_nilobject;}/*** main search function*/const TValue *luaH_get (Table *t, const TValue *key) {  switch (ttype(key)) {    case LUA_TNIL: return luaO_nilobject;    case LUA_TSTRING: return luaH_getstr(t, rawtsvalue(key));    case LUA_TNUMBER: {      int k;      lua_Number n = nvalue(key);      lua_number2int(k, n);      if (luai_numeq(cast_num(k), nvalue(key))) /* index is int? */        return luaH_getnum(t, k);  /* use specialized version */      /* else go through */    }    default: {      Node *n = mainposition(t, key);      do {  /* check whether `key' is somewhere in the chain */        if (luaO_rawequalObj(key2tval(n), key))          return gval(n);  /* that's it */        else n = gnext(n);      } while (n);      return luaO_nilobject;    }  }}TValue *luaH_set (lua_State *L, Table *t, const TValue *key) {  const TValue *p = luaH_get(t, key);  t->flags = 0;  if (p != luaO_nilobject)    return cast(TValue *, p);  else {    if (ttisnil(key)) luaG_runerror(L, "table index is nil");    else if (ttisnumber(key) && luai_numisnan(nvalue(key)))      luaG_runerror(L, "table index is NaN");    return newkey(L, t, key);  }}TValue *luaH_setnum (lua_State *L, Table *t, int key) {  const TValue *p = luaH_getnum(t, key);  if (p != luaO_nilobject)    return cast(TValue *, p);  else {    TValue k;    setnvalue(&k, cast_num(key));    return newkey(L, t, &k);  }}TValue *luaH_setstr (lua_State *L, Table *t, TString *key) {  const TValue *p = luaH_getstr(t, key);  if (p != luaO_nilobject)    return cast(TValue *, p);  else {    TValue k;    setsvalue(L, &k, key);    return newkey(L, t, &k);  }}static int unbound_search (Table *t, unsigned int j) {  unsigned int i = j;  /* i is zero or a present index */  j++;  /* find `i' and `j' such that i is present and j is not */  while (!ttisnil(luaH_getnum(t, j))) {    i = j;    j *= 2;    if (j > cast(unsigned int, MAX_INT)) {  /* overflow? */      /* table was built with bad purposes: resort to linear search */      i = 1;      while (!ttisnil(luaH_getnum(t, i))) i++;      return i - 1;    }  }  /* now do a binary search between them */  while (j - i > 1) {    unsigned int m = (i+j)/2;    if (ttisnil(luaH_getnum(t, m))) j = m;    else i = m;  }  return i;}/*** Try to find a boundary in table `t'. A `boundary' is an integer index** such that t[i] is non-nil and t[i+1] is nil (and 0 if t[1] is nil).*/int luaH_getn (Table *t) {  unsigned int j = t->sizearray;  if (j > 0 && ttisnil(&t->array[j - 1])) {    /* there is a boundary in the array part: (binary) search for it */    unsigned int i = 0;    while (j - i > 1) {      unsigned int m = (i+j)/2;      if (ttisnil(&t->array[m - 1])) j = m;      else i = m;    }    return i;  }  /* else must find a boundary in hash part */  else if (t->node == dummynode)  /* hash part is empty? */    return j;  /* that is easy... */  else return unbound_search(t, j);}#if defined(LUA_DEBUG)Node *luaH_mainposition (const Table *t, const TValue *key) {  return mainposition(t, key);}int luaH_isdummy (Node *n) { return n == dummynode; }#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美综合另类在线卡通| 在线成人av影院| 色吊一区二区三区| 91精品国产综合久久久久| 精品三级在线观看| 亚洲黄网站在线观看| 看片的网站亚洲| www.成人在线| 日韩视频免费直播| 中文字幕日韩av资源站| 日产国产欧美视频一区精品 | 国产喷白浆一区二区三区| 最新日韩av在线| 日韩成人dvd| 99re视频精品| 精品国免费一区二区三区| 亚洲色图欧洲色图婷婷| 黑人巨大精品欧美黑白配亚洲| 色婷婷综合激情| 欧美精品一区二区三| 亚洲综合色区另类av| 国产精品一品二品| 911精品国产一区二区在线| 国产精品乱码一区二三区小蝌蚪| 日韩vs国产vs欧美| 色婷婷av一区| 久久久精品tv| 日韩中文字幕区一区有砖一区 | 国产精品黄色在线观看| 日本不卡一二三| 91麻豆蜜桃一区二区三区| 精品国产亚洲在线| 亚洲成a人v欧美综合天堂 | 亚洲国产精品欧美一二99| 国产白丝精品91爽爽久久| 69久久夜色精品国产69蝌蚪网| 中文字幕一区二区三区在线不卡| 久久99精品网久久| 欧美日韩精品综合在线| 成人免费在线观看入口| 国产乱妇无码大片在线观看| 欧美理论片在线| 亚洲欧美一区二区不卡| 国产精品一级二级三级| 日韩欧美国产综合| 日韩精彩视频在线观看| 欧美午夜免费电影| 中文字幕一区二区5566日韩| 国产精品香蕉一区二区三区| 精品欧美一区二区久久| 日韩av电影免费观看高清完整版| 欧美午夜一区二区| 亚洲一区二三区| 色婷婷精品久久二区二区蜜臂av| 国产精品免费看片| 国产成人精品免费网站| 久久亚洲精精品中文字幕早川悠里| 奇米精品一区二区三区在线观看| 欧美日韩夫妻久久| 亚洲电影中文字幕在线观看| 91精彩视频在线| 亚洲欧美日韩成人高清在线一区| av电影在线观看一区| 中文字幕精品—区二区四季| 国产成人精品一区二区三区四区| 久久久亚洲欧洲日产国码αv| 精品一区二区三区在线播放 | 久久精品国产亚洲aⅴ| 欧美精选一区二区| 亚洲成av人片一区二区| 欧美影院精品一区| 亚洲第一成人在线| 91.xcao| 首页国产丝袜综合| 日韩一二三区视频| 极品少妇一区二区| 久久久久国产免费免费 | 国产精品久久综合| 99久久99久久精品免费看蜜桃| 中文久久乱码一区二区| 99视频有精品| 亚洲影视在线观看| 欧美日韩视频在线第一区| 午夜精品成人在线| 精品国精品自拍自在线| 国产mv日韩mv欧美| 亚洲手机成人高清视频| 在线观看免费一区| 日韩 欧美一区二区三区| 26uuu欧美日本| caoporn国产一区二区| 一区二区在线观看视频| 欧美日韩精品久久久| 久久精品国内一区二区三区| 日本一区二区视频在线观看| 成人国产电影网| 亚洲激情图片qvod| 日韩欧美中文一区| 国产成人欧美日韩在线电影| 最近日韩中文字幕| 欧美另类变人与禽xxxxx| 国产一区三区三区| 亚洲欧洲www| 欧美日韩日本视频| 国产一区二三区| 亚洲欧洲一区二区三区| 欧美三级日韩三级| 激情图区综合网| 亚洲另类色综合网站| 欧美一区二区三区在线观看| 国产99久久精品| 亚洲va天堂va国产va久| 久久色在线观看| 91免费精品国自产拍在线不卡| 秋霞午夜av一区二区三区| 国产精品久久777777| 欧美二区三区的天堂| 国产91在线观看丝袜| 亚洲一级二级三级在线免费观看| 久久综合色天天久久综合图片| av欧美精品.com| 欧美a级理论片| 中国色在线观看另类| 欧美日韩一二区| 成人动漫一区二区| 毛片基地黄久久久久久天堂| 亚洲欧洲成人自拍| 精品成人一区二区三区四区| 色婷婷亚洲婷婷| 国产剧情一区二区三区| 亚洲444eee在线观看| 国产精品美女久久久久久| 91精品国产入口在线| 一本大道av一区二区在线播放| 久国产精品韩国三级视频| 亚洲精选视频在线| 久久蜜臀中文字幕| 欧美精品日日鲁夜夜添| 99热国产精品| 国产精品中文有码| 免费成人你懂的| 一区二区久久久久久| 国产精品免费aⅴ片在线观看| 欧美电影免费观看高清完整版在线观看| www.av精品| 欧美一卡2卡3卡4卡| 一本色道a无线码一区v| 国产一区二区91| 视频一区国产视频| 亚洲女人****多毛耸耸8| 国产日韩欧美不卡在线| 日韩欧美一区二区三区在线| 国产激情91久久精品导航 | 成人av在线一区二区三区| 蜜臀91精品一区二区三区 | 欧美一区二区日韩| 欧亚洲嫩模精品一区三区| 成人午夜伦理影院| 国产精品123区| 久久99精品久久久久久久久久久久| 一区二区三区av电影| 亚洲人成伊人成综合网小说| 日本一二三四高清不卡| 久久伊人蜜桃av一区二区| 日韩视频在线永久播放| 91精品国产91久久久久久一区二区| 在线精品视频免费播放| www.综合网.com| 成人高清av在线| 成人永久aaa| 成人精品免费看| 成人自拍视频在线| 成人在线综合网站| 成人动漫精品一区二区| 国产成人啪免费观看软件| 国产成人小视频| 高清日韩电视剧大全免费| 国产白丝网站精品污在线入口| 国产成人免费视频网站高清观看视频| 国产在线视频不卡二| 激情欧美一区二区三区在线观看| 久久激五月天综合精品| 久久精品国产成人一区二区三区 | 久久久三级国产网站| 精品国产乱码久久久久久夜甘婷婷 | 国产一区二区三区日韩| 精一区二区三区| 国产一区二区三区免费看| 国产露脸91国语对白| 国产传媒久久文化传媒| 成人app在线观看| 91丨porny丨中文| 91福利在线免费观看| 欧美少妇一区二区| 欧美高清精品3d| 欧美成人官网二区| 亚洲国产精品二十页| 综合电影一区二区三区 | 欧美高清性hdvideosex| 91精品国产色综合久久ai换脸|