日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【lua学习】3.字符串

發(fā)布時(shí)間:2023/12/2 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【lua学习】3.字符串 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【lua學(xué)習(xí)】3.字符串

  • Lua字符串的概況
  • 字符串實(shí)現(xiàn)
    • 字符串結(jié)構(gòu)TString
    • 全局字符串表stringtable
    • 新建字符串luaS_newlstr (先查表,再?zèng)Q定創(chuàng)建與否)
    • 新建字符串 newlstr
    • 重新設(shè)置全局字符串的大小 luaS_resize
    • 全局字符串表的縮容
    • 保留字是如何不被回收的

Lua字符串的概況

  • Lua虛擬機(jī)中存在一個(gè)散列桶結(jié)構(gòu)的全局字符串表來存放所有字符串
  • 關(guān)于比較字符串:先比較hash,再比較長度,再逐字符比較。節(jié)省時(shí)間
  • 同一個(gè)字符串在Lua虛擬機(jī)中僅有一個(gè)副本。節(jié)省空間
  • 一旦創(chuàng)建則無法變更
  • 變量存放的僅是字符串的引用

字符串實(shí)現(xiàn)

字符串結(jié)構(gòu)TString

(lobject.h) TString

typedef union TString {L_Umaxalign dummy;//保證最大對其//見下文struct {CommonHeader;lu_byte reserved;//當(dāng)>0時(shí),其值-1表示保留字列表中的索引//見下文unsigned int hash;//字符串散列值,根據(jù)字符串長度和部分字符計(jì)算而來的值,見下文size_t len;//字符串長度} tsv; } TString;

(llimits.h) L_Umaxalign

typedef LUAI_USER_ALIGNMENT_T L_Umaxalign;//LUAI_USER_ALIGNMENT_T見下文

(luaconf.h) LUAI_USER_ALIGNMENT_T

//看此定義,為8字節(jié)對齊 #define LUAI_USER_ALIGNMENT_T union { double u; void* s; long l; }

全局字符串表stringtable

(lstate.h) stringtable

typedef struct stringtable {GCObject** hash;//開散列結(jié)構(gòu)(和lua table的閉散列結(jié)構(gòu)是有區(qū)別的),指向一個(gè)數(shù)組,每個(gè)元素是桶(GCObject*類型),桶管理GCObject鏈表lu_int32 nuse;//存儲(chǔ)的字符串?dāng)?shù)量int size;//全局字符串表的最大容量(hash桶的最大數(shù)量) } stringtable;

新建字符串luaS_newlstr (先查表,再?zèng)Q定創(chuàng)建與否)

(lstring.c) luaS_newlstr

TString* luaS_newlstr(lua_State* L, const char *str, size_t len) {//初始h值就是字符串的長度unsigned int h = cast(unsigned int, len);//cast就是強(qiáng)制轉(zhuǎn)型,見下文//獲得計(jì)算hash值的跨度,如果字符串很長,若逐位計(jì)算肯定非常消耗性能size_t step = (len>>5) + 1;//從最后一個(gè)字符開始,計(jì)算h值,跟后續(xù)計(jì)算的值執(zhí)行異或,進(jìn)而得到最終的h值for (size_t l1 = len; l1 >= step; l1 -= step){h ^= ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));}//h值對全局字符串表的最大桶數(shù)量求余,得到桶的索引unsigned int bucket_index = lmod(h, G(L)->strt.size);//lmod見下文,G見下文//遍歷該桶管理的鏈表,查找有沒有相等的字符串for (GCObject* gco = G(L)->strt.hash[bucket_index];gco != NULL;gco = gco->gch.next){TString* ts = rawgco2ts(gco);//rawgco2ts見下文if (ts->tsv.len == len//先比較長度&& (memcmp(str, getstr(ts), len) == 0))//再逐位比較。getstr見下文{if (isdead(G(L), gco))//若要被GC,則把標(biāo)記標(biāo)為另一種白色,防止被GC。isdead見下文{changewhite(gco);}//找到了,就不需要新建了,直接返回即可return ts;}}//新建字符串return newlstr(L, str, len, h); }

(llimits.h) cast宏

#define cast(t, exp) ((t)(exp))

(lobject.h) lmod宏

//針對size為2次冪的 優(yōu)化的 取模算法 #define lmod(s,size) \(check_exp((size&(size-1))==0, (cast(int, (s) & ((size)-1)))))

(lstate.h) G宏

#define G(L) (L->l_G)

(lstate.h) rawgco2ts宏

//根據(jù)GCObject*獲取TString* #define rawgco2ts(gco) check_exp((gco)->gch.tt == LUA_TSTRING, &((gco)->ts))

(lobject.h) getstr宏

//根據(jù)TString* 獲取 字符串的首地址,注意:字符串首地址并不在TString內(nèi)部,而在TString對象最后一個(gè)字節(jié)的下一個(gè)字節(jié),這也解釋了為何TString一定要對齊,就是為了提高CPU讀取性能 #define getstr(ts) cast(const char *, (ts) + 1)

(lgc.h) isdead宏

//判斷是否在當(dāng)前GC階段被判定為需要回收,todo以后討論 #define isdead(g, gco) ((gco)->gch.marked & otherwhite(g) & WHITEBITS)

(lgc.h) changewhite宏

//改變GCObject的當(dāng)前白色標(biāo)記,todo以后討論 #define changewhite(gco) ((gco)->gch.marked ^= WHITEBITS)

新建字符串 newlstr

(lstring.c) newlstr

static TString* newlstr(lua_State* L, const char* str, size_t len, unsigned int h) {//若字符串太長,則luaM_toobig。luaM_toobig見下文if (len + 1 > (MAX_SIZE - sizeof(TString)/sizeof(char)){luaM_toobig(L);}//為TString對象分配連續(xù)的空間,這個(gè)空間首部是TString結(jié)構(gòu),后面緊接著是字符串實(shí)際內(nèi)容TString* ts = cast(TString*, luaM_malloc(L, (len + 1)*sizeof(char) + sizeof(TString)));ts.tsv.len = len;ts.tsv.hash = h;ts.tsv.marked = luaC_white(G(L));ts.tsv.reserved = 0;//獲取字符串內(nèi)容的首地址pstrchar* pstr = (char*)(ts + 1);//拷貝str到pstrmemcpy(pstr , str, len * sizeof(char));//字符串最后一個(gè)字符當(dāng)然是'\0'pstr[len] = '\0';//獲取全局字符串表stringtable* tb = &G(L)->strt;//計(jì)算桶索引h = lmod(h, tb->size);//用頭插法將字符串插入桶中ts->tsv.next = tb->hash[h];tb->hash[h] = obj2gco(ts);//obj2gco見下文//全局字符串表的字符串?dāng)?shù)量+1tb->nuse++;//若字符串總數(shù) 超過了 全局字符串表的最大桶數(shù) 且 最大桶數(shù) <= MAX_INT/2,則對全局字符串表擴(kuò)容if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2){luaS_resize(L, tb->size*2);//luaS_resize,重新分配全局字符串表的大小,見下文} }

(llimits.h) MAX_SIZET宏

#define MAX_SIZET ((size_t)(~(size_t)0)-2)

(lmem.c) luaM_toobig報(bào)告要分配的內(nèi)存過大

void* luaM_toobig(lua_State* L) {//luaG_runerror, todo后面討論luaG_runerror(L, "memory allocation error: blobk too big");return NULL; }

(lmem.h) luaM_malloc宏

//請求分配needbytes字節(jié)內(nèi)存,luaM_realloc_見下文 #define luaM_malloc(L, bytes_to_allocate) luaM_realloc_(L, NULL, 0, (bytes_to_allocate))

(lmem.c) luaM_realloc_分配內(nèi)存

void* luaM_relloc_(lua_State* L, void* address_to_free, size_t bytes_to_free, size_t bytes_to_allocate) {lua_assert((bytes_to_free==0)==(address_to_free==NULL));//#llimits.h中define lua_assert(c) ((void)0) 什么也不做,所以忽略global_State* g = G(L);//調(diào)用全局表的內(nèi)存分配函數(shù)void* address_to_allocate = (*g->frealloc)(g->ud, address_to_free, bytes_to_free, bytes_to_allocate);//若分配失敗且需要的字節(jié)數(shù)>0,拋出內(nèi)存分配錯(cuò)誤if (address_to_allocate == NULL && bytes_to_allocate> 0){//luaD_throw,todo后面討論luaD_throw(L, LUA_ERRMEM);//lua.h中#define LUA_ERRMEM 4}lua_assert((bytes_to_allocate==0)==(address_to_allocate==NULL));//分配的內(nèi)存總字節(jié)數(shù) 發(fā)生變化g->totalbytes += bytes_to_allocate - bytes_to_free;return address_to_allocate; }

(lgc.h) luaC_white獲取當(dāng)前GC白色

//獲取當(dāng)前gc的白色,todo后面討論 #define luaC_white(g) cast(lu_byte, (g)->currentwhite & WHITEBITS)

(lstate.h) obj2gco宏

//將對象指針強(qiáng)制轉(zhuǎn)為GCObject* #define obj2gco(v) (cast(GCObject *, (v)))

(llimits.h) MAX_INT宏

#define MAX_INT (INT_MAX-2)

重新設(shè)置全局字符串的大小 luaS_resize

(lstring.c) luaS_resize

void luaS_resize(lua_State* L, int newsize) {//若GC正處于掃描字符串階段,則不處理。GCSweepingstring見下文if (G(L)->gcstate == GCSweepingstring){return;}//新分配hash結(jié)構(gòu)GCObject** newhash = luaM_newvector(L, newsize, GCObject*);//初始化每個(gè)桶為空指針for (int i = 0; i < newsize; i++){newhash[i] = NULL;}//獲取全局字符串表指針stringtable* tb = &G(L)->strt;//遍歷每個(gè)桶,遍歷每個(gè)桶管理的鏈表,全部奪舍到新的hash結(jié)構(gòu)中for (int i = 0; i < tb.size; i+){GCObject* p = tb->hash[i];//遍歷桶管理的鏈表while(p){//以next指向下一個(gè)元素GCObject* next = p->gch.next;//根據(jù)的hash計(jì)算新的 hashunsigned int oldh = gco2ts(p)->hash;int newh = lmod(oldh, newsize);lua_assert(cast_int(oldh%newsize)==lmod(oldh,newsize))//用頭插法將元素加入桶管理的鏈表p->gch.next = newhash[newh];newhash[newh] = p;//p設(shè)為next,以便循環(huán)的下一輪p = next;}}//釋放舊的hash結(jié)構(gòu)luaM_freearray(L, tb->hash, tb_size, TString*);//更新全局字符串表tb->size = newsize;tb->hash = newhash; }

(lgc.h) GCSsweepstring宏

//gc的幾個(gè)階段,todo后面再說 #define GCSpause 0 #define GCSpropagate 1 #define GCSsweepstring 2 #define GCSsweep 3 #define GCSfinalize 4

(lmem.h) luaM_newvector宏

//分配count個(gè)類型為datatype的連續(xù)內(nèi)存空間,獲得的數(shù)據(jù)強(qiáng)制轉(zhuǎn)型為datatype* #define luaM_newvector(L,count_to_allocate,datatype) \cast(datatype*, luaM_reallocv(L, NULL, 0, count_to_allocate, sizeof(datatype)))

(lmem.h) luaM_reallocv宏

//分配count個(gè)singlebytes大小的連續(xù)內(nèi)存空間,若空間足夠則分配,否則報(bào)錯(cuò) #define luaM_reallocv(L,address_to_free,count_to_free,count_to_allocate,singlebytes) \((cast(size_t, (count)+1) <= MAX_SIZET/(singlebytes)) ? luaM_realloc_(L, (address_to_free), (count_to_free)*(singlebytes), (count_to_allocate)*(singlebytes)) : \luaM_toobig(L))

(lmem.h) luaM_freearray宏

//釋放address_to_free處的count_to_free個(gè)datatype類型的連續(xù)內(nèi)存空間 #define luaM_freearray(L, address_to_free, count_to_free, datatype) luaM_reallocv(L, (address_to_free), count_to_free, 0, sizeof(datatype))

全局字符串表的縮容

  • 縮容的時(shí)機(jī):垃圾回收的GCSweep階段
  • 縮容的原則:全局字符串表的字符串總數(shù)<桶的最大數(shù)量 且 桶的最大數(shù)量>MINSTRTABSIZE*2 (llimits.h中#define MINSTRTABSIZE 32)

(lgc.c) 看checkSize

static void checkSize(lua_State* L) {global_State* g = G(L);//當(dāng)全局字符串表的字符串總數(shù)小于桶最大數(shù)量的四分之一 且 桶的最大數(shù)量大于MINSTRTABSIZE*2, 則縮容if (g-<strt.nuse < cast(lu_int32, g->strt.size/4)&& g->strt.size > MINSTRTABSIZE*2){luaS_resize(L, g->strt.size/2);}//...無關(guān)內(nèi)容省略 }

(lgc.c) 看singlestep

//一次單步GC,todo后面再說 static l_mem singlestep(lua_State* L) {global_State* g = G(L);switch(g->gcstate){//...無關(guān)內(nèi)容省略case GCSweep:{lu_mem old = g->totalbytes;g->sweepgc = sweeplist(L, g->sweepgc, GCSWEEPMAX);if (*g->sweepgc == NULL){//包含有全局字符串表縮容的操作checkSizes(L);g->gcstate = GCSfinalize;}lua_assert(old >= g->totalbytes);g->estimate -= old - g->totalbytes;return GCSWEEPMAX*GCSWEEPCOST;}//...無關(guān)內(nèi)容省略}//...無關(guān)內(nèi)容省略 }

保留字是如何不被回收的

  • 不被回收的原則:被luaS_fix操作,其tsv.marked被改成了FIXEDBIT

(llex.c) luaX_init

void luaX_init(lua_State* L) {for (int i=0; i<NUM_RESERVED; i++)//NUM_RESERVED見下文{//嘗試新建每個(gè)保留字字符串TString* ts = luaS_new(L, luaX_tokens[i]);//luaS_new luaX_tokens 見下文//標(biāo)記不會(huì)被GC,修改ts->tsv.marked為FIXEDBITluaS_fix(ts);//luaS_fix見下文lua_assert(strlen(luaX_tokens[i]) + 1 <= TOKEN_LEN);//TOKEN_LEN見下文//記錄在保留字?jǐn)?shù)組的索引+1值ts->tsv.reserved = cast_byte(i + 1);} }

(llex.h) NUM_RESERVED宏

//表示多少個(gè)保留字 //TK_WHILE FIRST_RESERVED 見下文 #define NUM_RESERVED (cast(int, TK_WHILE-FIRST_RESERVED+1))

(llex.h) RESERVED 枚舉

enum RESERVED {/* terminal symbols denoted by reserved words */TK_AND = FIRST_RESERVED, TK_BREAK,TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION,TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT,TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE,/* other terminal symbols */TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_NUMBER,TK_NAME, TK_STRING, TK_EOS };

(lstring.h) luaS_new宏

//嘗試新建一個(gè)字符串 #define luaS_new(L, s) (luaS_newlstr(L, s, strlen(s)))

(llex.c) luaX_tokens

//終結(jié)符數(shù)組 const char *const luaX_tokens [] = {"and", "break", "do", "else", "elseif","end", "false", "for", "function", "if","in", "local", "nil", "not", "or", "repeat","return", "then", "true", "until", "while","..", "...", "==", ">=", "<=", "~=","<number>", "<name>", "<string>", "<eof>",NULL };

(lstring.h) luaS_fix宏

//設(shè)置字符串不會(huì)被GC //l_setbit FIXEDBIT見下文 #define luaS_fix(s) l_setbit((s)->tsv.marked, FIXEDBIT)

(lgc.h) l_setbit宏

//x與m求或 #define setbits(x,m) ((x) |= (m)) //求2的b-1次方,也就是第b位為1,其余為0 #define bitmask(b) (1<<(b)) //將b1和b2位設(shè)為1,其余為0 #define bit2mask(b1,b2) (bitmask(b1) | bitmask(b2)) //將x的第b位置為1 #define l_setbit(x,b) setbits(x, bitmask(b))

(lgc.h) FIXEDBIT宏

//todo后面再說 #define WHITE0BIT 0 #define WHITE1BIT 1 #define BLACKBIT 2 #define FINALIZEDBIT 3 #define KEYWEAKBIT 3 #define VALUEWEAKBIT 4 #define FIXEDBIT 5 #define SFIXEDBIT 6 #define WHITEBITS bit2mask(WHITE0BIT, WHITE1BIT)

(llex.h) TOKEN_LEN宏

//保留字選function為最長 #define TOKEN_LEN (sizeof("function")/sizeof(char))

總結(jié)

以上是生活随笔為你收集整理的【lua学习】3.字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产精品18久久久久久vr | 天天爱天天射 | 久久精品首页 | 丁香久久五月 | 久久久精品网站 | 国产网红在线观看 | 欧美日韩三级在线观看 | 亚洲日韩精品欧美一区二区 | 欧洲精品视频一区 | 午夜精品视频免费在线观看 | 综合色中文 | 精品国产欧美一区二区三区不卡 | 在线观看中文字幕 | 久久一区二区三区日韩 | 日韩在线短视频 | 91av免费在线观看 | 高清av免费看 | 91视频在线免费下载 | 亚洲国产精品女人久久久 | 午夜久久福利影院 | 黄色大全免费网站 | 中文在线免费看视频 | 91在线精品一区二区 | 国产精品一区二区三区观看 | 国产精品嫩草在线 | 可以免费观看的av片 | 96av在线视频 | 日日干精品 | 国产黄色精品网站 | 国产群p | 草久久影院 | 91精品国自产在线观看欧美 | 91精品国自产在线偷拍蜜桃 | 国产精品18p | 欧美一区二区三区在线看 | 亚洲精选视频免费看 | 91高清在线看 | 天天做夜夜做 | 国语对白少妇爽91 | 日韩中文字幕在线观看 | 中文字幕视频三区 | 国产视频不卡 | 黄色小网站在线观看 | 国产不卡免费视频 | 狠狠色香婷婷久久亚洲精品 | 免费观看全黄做爰大片国产 | 婷婷精品视频 | 不卡av电影在线观看 | 亚洲 综合 专区 | 草久久久 | 婷婷在线视频观看 | 色黄www小说| 成人精品久久 | 97国产视频 | 日韩欧美在线综合网 | 亚洲女裸体 | 国产精品成人一区二区三区吃奶 | 一级a性色生活片久久毛片波多野 | 手机在线观看国产精品 | 久久久麻豆视频 | 一区二区三区在线免费观看视频 | 久草视频免费在线观看 | 深夜激情影院 | 国产一二区视频 | 婷婷丁香在线 | 欧美做受高潮电影o | 在线看国产日韩 | 日韩免费av在线 | 久久精品综合视频 | 国产福利在线免费 | 国色天香永久免费 | 国产精品11 | 国产五码一区 | 久久好看免费视频 | 日韩啪啪小视频 | 美女视频黄是免费的 | av丁香| 免费观看黄色av | 99精品在线播放 | 国产免费久久久久 | 欧美国产91 | 成 人 免费 黄 色 视频 | av网址最新 | 久久精品电影院 | 欧美人操人 | 欧美一区二区三区在线 | 亚洲成人午夜在线 | 黄色av影视 | 91传媒在线播放 | 欧美日韩精品在线观看 | 久久久免费网站 | 久久精品成人 | 国产你懂的在线 | 日韩一区精品 | 成人国产在线 | 激情五月激情综合网 | 一级欧美一级日韩 | 人人玩人人添人人澡97 | 蜜臀av性久久久久av蜜臀三区 | 91精品国产高清 | 国产中文字幕网 | 国产精品二区三区 | 天堂av中文字幕 | 色99视频| 色妞色视频一区二区三区四区 | 久久福利电影 | 午夜精品一二三区 | 国产精选在线 | 激情大尺度视频 | 国产精品久久久久久久久费观看 | 日韩欧美在线不卡 | 天天操天天操天天操天天操天天操天天操 | 在线色视频小说 | 日日夜夜网| www.97色.com | 在线观看视频你懂得 | 综合av在线 | av丁香花 | 成年人在线观看 | 手机成人在线电影 | www.av在线.com| 99色婷婷| 91视频国产免费 | 中日韩免费视频 | 欧美精品一区二区三区一线天视频 | 国产精品手机播放 | 91在线观看视频网站 | 亚欧日韩成人h片 | 久草在线免费资源站 | 玖玖色在线观看 | 精品久久久久久综合日本 | 国产一区二区在线播放 | 色小说在线 | 日韩理论片 | 国产视频一区二区在线观看 | 欧美最猛性xxxx | 国产欧美日韩一区 | 国产成人黄色 | 91网在线看 | 91秒拍国产福利一区 | 久久免费视频观看 | 嫩嫩影院理论片 | 久草在线最新 | 波多野结衣电影一区二区三区 | 在线观看中文字幕2021 | 91精品一区二区在线观看 | 97精品国产aⅴ | 99在线播放 | av在线免费网站 | 国产亚洲精品成人av久久影院 | 欧美色噜噜 | 高清精品久久 | 免费在线播放黄色 | www.国产在线视频 | 欧美日韩国产一区二 | 久久av黄色| 国产二级视频 | 成人a在线观看 | 国产亚洲永久域名 | 国产一级片播放 | 在线网站黄 | www.久久久 | 久久久久一区二区三区四区 | 久久96国产精品久久99软件 | av+在线播放在线播放 | 久久精品综合一区 | 国产日产av | 国产精品亚洲片在线播放 | 99视频在线精品国自产拍免费观看 | 婷婷精品国产欧美精品亚洲人人爽 | 亚洲va韩国va欧美va精四季 | 亚洲国产精品va在线看黑人动漫 | 亚洲天天在线 | 亚洲一区久久 | 国产福利在线免费观看 | 国产高清第一页 | 在线国产日本 | 99视频导航 | 日韩视频免费在线观看 | 青草视频在线免费 | 五月婷婷丁香色 | 日本婷婷色| 欧美最猛性xxxx | 国产精品一区二区麻豆 | 色 免费观看| 美女又爽又黄 | 六月丁香婷 | 黄色软件视频网站 | 特级西西444www大精品视频免费看 | 91在线视频观看免费 | 欧美日韩高清在线一区 | 亚洲精品看片 | 亚洲免费av在线播放 | 伊人国产在线播放 | 亚洲一区欧美激情 | 日韩亚洲国产精品 | 国产露脸91国语对白 | 中文字幕在线播放一区二区 | 又湿又紧又大又爽a视频国产 | 久久精品直播 | 亚洲精品五月天 | 一区 在线观看 | 久久综合天天 | 91九色国产 | 天天操狠狠干 | 97视频在线观看视频免费视频 | 最近更新中文字幕 | 国产精品久久久一区二区三区网站 | 五月天天色 | 成年人在线 | 欧美精品在线观看一区 | 国产精品久久久久国产精品日日 | 国产精品黄色av | www.99在线观看 | 国产日韩精品一区二区三区在线 | 91九色porny蝌蚪视频 | 色天天综合久久久久综合片 | 国产护士hd高朝护士1 | 日韩一区在线播放 | 精品美女视频 | www.超碰97.com | 久久免费国产电影 | 超碰成人免费电影 | 日韩久久一区 | 久久久久久久久久久久亚洲 | 在线精品视频免费播放 | 婷婷5月激情5月 | 97在线观看免费视频 | 亚洲视频分类 | 美女网站色在线观看 | 伊香蕉大综综综合久久啪 | 久久免费的精品国产v∧ | 91久久一区二区 | 精品一二三区 | 亚洲免费黄色 | 人人玩人人爽 | 色婷婷久久久 | 精品免费国产一区二区三区四区 | 综合色综合 | 午夜视频在线观看网站 | 五月天com| 久久久精品国产一区二区三区 | www色,com| 久久久香蕉视频 | 五月婷婷网站 | 亚洲永久av | 久久新视频| 国产麻豆精品在线观看 | 1000部18岁以下禁看视频 | 久久人人爽人人片 | 天天射天 | 香蕉视频在线免费 | 91在线观看视频 | 国产日产高清dvd碟片 | 亚洲欧美国产日韩在线观看 | 99久久一区| 欧美精品乱码久久久久久 | 欧美日韩精品网站 | 亚洲在线视频免费 | 久久精品视频在线观看 | 日本黄色免费观看 | 97超碰免费 | 国产精品入口传媒 | 日本公妇在线观看 | 久久国产精品免费视频 | 国产欧美日韩精品一区二区免费 | 天天射天天搞 | 91精品国产99久久久久久红楼 | 久草视频手机在线 | 久久精品看 | 成人午夜电影网 | 992tv又爽又黄的免费视频 | 夜夜操夜夜干 | 911av视频| 精品96久久久久久中文字幕无 | av天天干 | 天天干天天做天天操 | 四虎影视精品永久在线观看 | 免费观看的av网站 | 国产原创中文在线 | 精品九九久久 | 国产精品久久亚洲 | 毛片99 | 亚洲va欧美va人人爽春色影视 | 亚洲永久字幕 | 国产综合精品一区二区三区 | 免费国产在线观看 | 亚洲夜夜网 | 中文字幕在线观看免费高清完整版 | 久草青青在线观看 | 99精品免费视频 | av福利在线免费观看 | 国产 中文 日韩 欧美 | 91综合久久一区二区 | 免费视频一二三 | 国产精品久久久久久久久久久久午夜 | 片黄色毛片黄色毛片 | 国产 一区二区三区 在线 | 国产精品久久一卡二卡 | 国产区高清在线 | 91亚洲影院| 亚洲人成综合 | 色综合天| 91精品在线观看视频 | www九九热 | 成人免费共享视频 | av日韩国产 | 中文字幕在线观看免费 | 天堂av最新网址 | 久久桃花网| 99久久久久久久久久 | 三级黄色a | 在线国产视频观看 | 中文视频一区二区 | www黄色 | 五月婷婷在线观看 | 午夜aaaa | 国产在线视频一区二区 | 五月开心六月婷婷 | 国产精品自拍在线 | 网址你懂的在线观看 | 麻豆精品91| 久久高清av | 免费网站看av片 | www.色婷婷.com| 中文在线免费看视频 | 青青草国产精品视频 | 欧美性色综合网站 | 免费无遮挡动漫网站 | 亚洲婷婷免费 | 激情综合五月网 | 97超碰人人澡人人爱 | 免费毛片一区二区三区久久久 | 狠狠操导航 | 在线观看av小说 | 24小时日本在线www免费的 | 国产99久久九九精品免费 | 中国一级片视频 | 久久a国产| 色黄www小说 | 久久精品一级片 | 国产一区欧美在线 | 一区二区视频在线观看免费 | 日本精a在线观看 | 欧美性生活一级片 | 国产精品视频大全 | 久久成人高清视频 | av成人在线播放 | 黄色三级在线观看 | 国产亚洲精品久久久久久网站 | 特级片免费看 | 玖玖综合网 | 久久嗨| 丁香综合 | av在线播放中文字幕 | 免费一级日韩欧美性大片 | 国产日韩欧美视频在线观看 | 天天操夜操视频 | 最近免费观看的电影完整版 | 日韩电影一区二区在线 | 国内精品久久久久久久 | 日韩一区二区三区视频在线 | 97人人澡人人添人人爽超碰 | 久久视频这里有精品 | 天堂av在线网站 | 久久九九精品久久 | 久久精品8 | 国内精品久久久久久久 | 国产日韩精品一区二区 | 日本黄色大片免费看 | 亚洲夜夜网 | 精品国偷自产国产一区 | 日韩91av | 久久精品久久久久 | 免费黄色a级毛片 | 91福利视频一区 | 麻豆传媒视频在线免费观看 | 4438全国亚洲精品在线观看视频 | 一级黄色大片在线观看 | 日韩欧美91 | 久久在线免费观看 | 国产精品久免费的黄网站 | 91av观看| 免费观看十分钟 | 久草在线资源网 | 在线观av | 99久热在线精品视频 | 天堂va在线高清一区 | 欧洲精品一区二区 | 狠狠干夜夜爽 | 天天干,天天干 | 日韩精品免费专区 | 国产午夜精品一区二区三区嫩草 | 免费a现在观看 | 91av官网| 久久久国产精品一区二区三区 | 欧美性成人 | 久久天天躁狠狠躁亚洲综合公司 | 国产精品免费观看国产网曝瓜 | 在线免费观看欧美日韩 | 成人精品久久 | 日韩中文字幕第一页 | 免费观看www7722午夜电影 | 超碰精品在线 | 视频国产一区二区三区 | 精品国产一区二区三区久久久久久 | 亚洲精品乱码白浆高清久久久久久 | 操操操日日日干干干 | 美女性爽视频国产免费app | 欧美成人a在线 | aⅴ精品av导航 | 久久免费福利 | av一区二区三区在线观看 | 亚洲综合网 | 日本中文字幕观看 | 毛片网站在线观看 | 在线视频 区 | 高清一区二区三区av | 日韩电影一区二区三区 | 成人免费在线播放视频 | 国产精品av在线免费观看 | 国内精品久久久久久久影视麻豆 | 五月婷婷网站 | 成人一区在线观看 | 一二区精品 | 欧美日韩一区三区 | 免费中文字幕在线观看 | 午夜精品久久久久久99热明星 | 精品久久久久一区二区国产 | 韩国av不卡 | 99精品国产在热久久下载 | 高清不卡一区二区在线 | 免费情缘 | www黄com| 人人爽夜夜爽 | 黄色国产大片 | 久草在线免费播放 | 国内精品久久久精品电影院 | 成人欧美一区二区三区在线观看 | 日韩一级理论片 | 国产日产精品一区二区三区四区的观看方式 | 久久久高清一区二区三区 | 黄色三级在线观看 | 99riav1国产精品视频 | 蜜桃av人人夜夜澡人人爽 | 九九热在线免费观看 | 精品一区二区三区在线播放 | 国产高清久久久久 | 欧美日韩免费在线观看视频 | 久久人人爽 | ww亚洲ww亚在线观看 | 亚洲精品九九 | 天天干天天干天天干天天干天天干天天干 | 久久综合九色综合97_ 久久久 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 亚洲视频 一区 | 99久久婷婷国产一区二区三区 | 在线观看黄色免费视频 | av中文字幕在线观看网站 | 亚洲最大av| 99中文视频在线 | 国产专区一 | 超碰97免费 | 色婷婷www| www操操操| 国产123区在线观看 国产精品麻豆91 | 精品视频在线播放 | 天天干 夜夜操 | 中国美女一级看片 | 91久久久久久久一区二区 | 成年人视频在线免费 | 国产h片在线观看 | 欧美日韩高清在线一区 | 欧美日韩在线免费观看 | 99se视频在线观看 | 亚洲最新合集 | 日韩v欧美v日本v亚洲v国产v | 精品久久久久久久久久国产 | 中文字幕日韩伦理 | 成人va在线观看 | 精品欧美一区二区精品久久 | 婷婷丁香花五月天 | 国内视频| 成人在线超碰 | 九九热视频在线播放 | 欧美激情精品久久久久久变态 | 天天干天天草 | 久久黄色小说 | 日韩理论电影在线观看 | 干av在线| 中文字幕国产在线 | 亚洲精品国产麻豆 | 国产一级一片免费播放放 | 视频在线99re | 久久精品视频在线观看 | 一区二区精品视频 | 伊人久久婷婷 | 久久999久久 | 一区二区三区免费网站 | 毛片美女网站 | 国产精品一区二区在线 | 91大神精品视频在线观看 | 国产精品久久久久久超碰 | 一区二区三区免费在线观看视频 | 亚洲免费专区 | 日韩中文字 | 婷婷综合视频 | 色片网站在线观看 | 99精品在线观看视频 | www最近高清中文国语在线观看 | 国产中文伊人 | 中文字幕丝袜 | 亚洲黄色av网址 | 欧美国产日韩激情 | 日韩欧美黄色网址 | 美女网站视频久久 | 中文字幕 国产 一区 | 在线看一区二区 | 久久久久久久久久福利 | 久久黄色免费视频 | 欧美一二区在线 | 51久久夜色精品国产麻豆 | 国内精品视频免费 | 久久久久久久久久久久久久电影 | 91中文字幕在线观看 | 国产成人l区 | 黄色网中文字幕 | 黄色大片国产 | 国产精品免费视频一区二区 | 人人干狠狠操 | 国产精品 国产精品 | 国产精品99久久免费观看 | 国产第一福利 | 久久久久久久久久久免费av | 丁香六月婷婷综合 | 天天综合狠狠精品 | 久久综合九色欧美综合狠狠 | 中文字幕免费播放 | 欧美国产一区在线 | av一级二级| 天天综合日日夜夜 | 香蕉久久久久久av成人 | 成人免费观看视频网站 | 精品电影一区 | 超碰在线亚洲 | 欧美a在线免费观看 | 91视频免费网址 | 欧美激情精品久久 | www.com.日本一级 | 一区精品久久 | 在线视频观看成人 | mm1313亚洲精品国产 | 免费看黄色大全 | av中文字幕在线观看网站 | 九九热免费精品视频 | 久久免费激情视频 | 蜜臀av一区| 91九色精品 | 97国产电影 | 韩国精品在线 | 久久久男人的天堂 | 激情综合色综合久久 | 天天综合网天天综合色 | 国产美腿白丝袜足在线av | 亚洲精品白浆高清久久久久久 | 日韩在线国产精品 | www.xxxx变态.com | 少妇做爰k8经典 | 99色人| 国产色婷婷在线 | 亚洲成人第一区 | 天天综合久久 | 热久在线| 超碰免费久久 | 日本精品视频在线观看 | 久久精品观看 | 欧美一性一交一乱 | 久久精品国产精品亚洲 | 久草在线免费在线观看 | 欧美三人交 | 国产福利精品视频 | 51精品国自产在线 | 欧美成人久久 | 黄色大全视频 | 精品国内自产拍在线观看视频 | 日韩免费三级 | 在线观看日韩免费视频 | 精品一二三四在线 | 国产精品毛片完整版 | 国产高清福利在线 | 久久国产精品久久国产精品 | 国产小视频91 | 日韩精品在线播放 | 国产美女视频网站 | 中文字幕中文字幕在线一区 | 狠狠操.com| 91精品国自产拍天天拍 | 国内精品久久久久影院男同志 | 欧美日韩一区二区视频在线观看 | av成人免费在线看 | 成人久久国产 | 国产一区免费观看 | 久久久久国产精品免费免费搜索 | 欧美日韩免费视频 | 玖玖爱在线观看 | 国产一区二区在线免费播放 | 国产一区二区在线免费观看 | 天天色天天操综合 | 97超碰国产精品女人人人爽 | 美女网站视频久久 | 91黄色在线观看 | 国产录像在线观看 | 99精品视频免费在线观看 | 精品久久久久久亚洲综合网站 | 国产成人av电影在线观看 | 精品日韩在线 | 国产69精品久久久久久久久久 | 久久久久久久久网站 | 久久高清精品 | 色欧美88888久久久久久影院 | 日本韩国在线不卡 | 免费看一及片 | 中文字幕一区二区三区四区 | 久久视频99 | 九九热1 | 国产精品一区二区三区免费视频 | 黄网站a| 黄色.com | 黄污在线看 | 日韩在线观看中文 | 亚洲精品国产成人av在线 | 久久综合久久久 | 91在线观看视频网站 | 国产亚洲精品久 | 激情视频免费观看 | 久草视频免费在线播放 | wwwwww色| 国产精品自拍在线 | 天天玩夜夜操 | 麻豆一二三精选视频 | 国产 成人 久久 | 亚洲aⅴ一区二区三区 | 亚洲第二色 | 中文在线免费观看 | 超碰97国产精品人人cao | 92国产精品久久久久首页 | 国产精品女同一区二区三区久久夜 | 日韩高清二区 | 伊人开心激情 | 亚洲男人天堂2018 | 国产视频一级 | 97看片 | 久久久www成人免费毛片麻豆 | 超碰成人av | 日本福利视频在线 | 91在线产啪| 日本久久99 | 好看的国产精品视频 | 亚洲精品网站在线 | 97人人人| 久热色超碰 | 国产专区精品视频 | 日韩免费视频一区二区 | 国产高清av免费在线观看 | 91亚洲狠狠婷婷综合久久久 | 色天天 | 香蕉久草 | 免费三级黄| 精品国产一区二区三区久久久 | 五月婷婷开心 | 日韩有码第一页 | 国产日韩欧美在线看 | 福利二区视频 | 亚洲第一香蕉视频 | 亚洲精品在线视频观看 | 97在线观看 | 毛片在线网| 国产精品美女久久久久久久久久久 | 99精品乱码国产在线观看 | 国产精品你懂的在线观看 | av 一区二区三区四区 | 国产日韩精品欧美 | 日本精品视频免费观看 | 亚洲成人免费观看 | 日韩精品一区在线播放 | 少妇bbbb搡bbbb桶 | 97超碰中文字幕 | 99精品免费久久久久久日本 | 成全在线视频免费观看 | 亚洲精品h| 亚洲天堂在线观看完整版 | 久久99精品波多结衣一区 | 国产精品99爱 | 人人揉人人揉人人揉人人揉97 | 欧美资源在线观看 | www五月天| 成人av网页 | 六月激情丁香 | 夜夜夜草 | 婷婷在线色 | 亚洲电影一级黄 | 国产精品日韩久久久久 | 日韩精品不卡在线观看 | www黄在线| 日本最大色倩网站www | 久久dvd| 成人av影视在线 | 日本系列中文字幕 | 91福利影院在线观看 | 亚洲精品乱码久久久一二三 | 91av原创| 在线视频日韩一区 | 国产色黄网站 | 亚洲精品一区二区三区四区高清 | 欧美在线视频日韩 | 97视频在线观看免费 | 热久久国产 | 亚洲免费av观看 | 天天摸天天操天天爽 | 国产精品久久久久久麻豆一区 | 成人h动漫在线看 | 不卡电影一区二区三区 | 黄毛片在线观看 | 久久久免费在线观看 | 9在线观看免费高清完整版在线观看明 | 国产91免费观看 | 99久久9| 亚洲最新av网址 | 一区二区在线电影 | av成人免费网站 | 日批视频国产 | 国产91精品一区二区麻豆亚洲 | 在线观看黄色免费视频 | 丁香午夜| 在线成人一区二区 | 日韩欧美精品在线观看 | 亚洲精品一区二区三区四区高清 | 天天摸日日操 | 久草综合在线观看 | 精品免费在线视频 | 亚洲经典精品 | 日韩免费视频 | 国产精品观看在线亚洲人成网 | 91在线精品一区二区 | 91在线亚洲 | 国产精品久久久久久久久久久久久 | 亚洲国产精品久久久 | 亚洲精品视频在线免费 | 久久这里只有精品23 | 中文字幕日本在线观看 | 中文字幕中文字幕中文字幕 | 视频一区亚洲 | 欧美日本啪啪无遮挡网站 | 国产一卡在线 | 在线中文字幕视频 | 成人资源在线 | 国产精品入口麻豆www | 国产精品网红直播 | 日日夜夜亚洲 | 免费色视频在线 | 欧美日韩一区二区在线 | 天天操天天摸天天爽 | 999成人 | 国产精品亚洲综合久久 | 亚洲成人第一区 | 国产女v资源在线观看 | 免费aa大片 | 国产欧美综合在线观看 | 欧美另类亚洲 | 午夜黄色一级片 | 久久久久久毛片精品免费不卡 | 8x8x在线观看视频 | 国产精品永久在线观看 | 一区二区三区在线视频111 | 久久久精品国产一区二区三区 | 亚洲精品免费观看 | 日日摸日日碰 | 夜夜躁天天躁很躁波 | 成人三级视频 | 免费高清影视 | 99热这里有精品 | 久久黄色精品视频 | 日韩av一区二区三区四区 | 国产成人一区二区三区 | 日韩欧三级 | 午夜国产一区二区三区四区 | 欧美美女视频在线观看 | 成人免费视频视频在线观看 免费 | 一本大道久久精品懂色aⅴ 五月婷社区 | 久久精品久久精品久久 | 亚洲另类在线视频 | 日本精品一 | 国产人成免费视频 | 免费下载高清毛片 | 国产少妇在线观看 | 欧美在线视频第一页 | 韩日精品中文字幕 | 免费在线观看国产黄 | 久久综合九色综合欧美就去吻 | 亚洲在线视频免费 | 色偷偷男人的天堂av | 911在线| 久久精品一 | 超碰在线色 | 伊人黄色网| 欧美疯狂性受xxxxx另类 | 欧美日韩一二三四区 | 久久国产福利 | 国产精品久久久久久一二三四五 | 涩涩网站在线播放 | 精品一区二区三区久久久 | a视频在线观看免费 | 97视频在线观看免费 | 亚洲人成人99网站 | 91九色成人蝌蚪首页 | 久久首页 | 国产在线一卡 | 日本韩国精品一区二区在线观看 | 在线中文字幕视频 | 婷婷.com| 一区二区免费不卡在线 | 国产经典 欧美精品 | 久久都是精品 | 中文字幕免费观看全部电影 | 亚洲一区二区三区四区精品 | 免费成人av在线看 | 国产麻豆传媒 | 欧美日本在线视频 | 国产在线不卡精品 | 成人av片免费看 | 91一区二区三区久久久久国产乱 | 99色在线观看视频 | 99看视频在线观看 | 国产精品99久久久精品免费观看 | 亚洲一区二区麻豆 | 国产精品麻豆91 | 国产精品久久久久久久久久久久午夜 | 337p日本大胆噜噜噜噜 | 91aaa在线观看| 五月婷婷丁香激情 | 一区 二区 精品 | av在线免费网站 | 欧美性色19p | 永久中文字幕 | 天天爽人人爽夜夜爽 | 91久久奴性调教 | 激情综合五月婷婷 | 久久九九精品久久 | 欧美成年性 | 日韩电影在线看 | 激情五月视频 | 免费a视频在线 | 日韩欧美高清在线 | 韩日成人av | 日日日干 | 国产日本在线观看 | av在线一 | 99热这里只有精品国产首页 | 欧洲亚洲国产视频 | 久草电影免费在线观看 | 国产综合视频在线观看 | 午夜10000| 人人爽人人爽人人 | 国产一区免费看 | 久久99久久99精品免观看粉嫩 | 久久精品亚洲一区二区三区观看模式 | 婷婷综合 | 麻豆综合网 | 91在线免费观看国产 | 久久精品中文字幕免费mv | 丁香婷婷久久久综合精品国产 | 久久精品中文字幕少妇 | 国产精品网红直播 | 亚洲高清视频在线 | 中文字幕在线观看的网站 | 99久久精品费精品 | 91免费高清在线观看 | 久草在线手机观看 | 欧美一级片 | 日韩精品在线视频免费观看 | 奇米影视四色8888 | 欧美一区二区三区特黄 | 色综合狠狠干 | 久久国产精彩视频 | sm免费xx网站 | 久青草国产在线 | 国产精品国产三级国产aⅴ无密码 | av在线免费观看不卡 | 国产色综合天天综合网 | 这里只有精品视频在线观看 | 色狠狠操| 久久久免费看视频 | 亚洲一区二区三区精品在线观看 | 天堂av免费观看 | 九九视频免费观看视频精品 | 欧美一级大片在线观看 | 日日夜夜免费精品视频 | 日韩激情中文字幕 | 欧美最猛性xxxxx免费 | 国际精品久久久久 | 亚洲精品中文在线观看 | 一区二区视 | 一区二区三区日韩视频在线观看 | 国产成人免费观看 | 丝袜少妇在线 | 在线看v片 | 国产成人在线免费观看 | 在线亚洲午夜片av大片 | 成人久久精品 | 亚洲女人天堂成人av在线 | 欧美日韩精品在线 | 日韩精品在线视频 | av免费观看高清 | 五月婷婷久久丁香 | 亚洲国产精品久久久久 | 亚洲视频电影在线 | 天天爽天天碰狠狠添 | 99久久精品国产一区二区三区 | 97超碰成人在线 | 国产系列精品av | 99精品福利视频 | 色中色亚洲 | 天天天天爱天天躁 | 在线观看av黄色 | 伊人狠狠操 | 久久国产露脸精品国产 | 91av超碰 | 亚洲日本va午夜在线电影 | 国产在线 一区二区三区 | 久久久午夜电影 | 欧美资源在线观看 | 午夜久久久久久久久 | 国产最新在线视频 | 久久久久久久免费观看 | 黄色一级网 | 成年人在线免费视频观看 | 在线欧美最极品的av | 91热视频在线观看 | 色欧美88888久久久久久影院 | 久久久久欧美精品 | 日韩欧美精品在线观看视频 | 五月婷香蕉久色在线看 | 五月激情天 | 丁香五月网久久综合 | 中文字幕文字幕一区二区 | 黄色的片子 | 日韩久久精品一区二区三区下载 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 久久久久久久久久久久久国产精品 | 日本巨乳在线 | 女人18片 | 国产精品一区二区三区四区在线观看 | 久久全国免费视频 | 日日草视频 | 午夜国产一区二区三区四区 | 亚洲黄色片 | 91网在线观看 | 国产五月婷 | 国产欧美精品一区二区三区四区 | 久久久久国产精品一区 | 日韩在线观看小视频 | 欧美一区二区三区在线播放 | 欧美久久九九 | 黄在线 | 日韩中文字幕在线不卡 | 国产精品久久久久久久免费观看 | 国产精品美女999 | 久久新 | 国产自在线 | 久久国产精品视频观看 | adn—256中文在线观看 | 日本mv大片欧洲mv大片 | 插综合网 | 波多野结衣视频一区 | 欧美乱淫视频 | 国模一区二区三区四区 | 91丨九色丨国产女 | 99亚洲精品在线 | 欧美激情综合色综合啪啪五月 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 国产小视频在线观看 | 久久免费99| 黄色免费网 | 中文字幕久久精品亚洲乱码 | 天天天天射 | 久久久国产一区二区三区四区小说 | 亚洲男男gaygay无套同网址 | 91中文字幕在线 | 免费日韩电影 | 色中色亚洲 | 国产精品99久久免费黑人 | 在线涩涩| 免费在线观看一级片 | 欧美日韩1区2区 | 欧美性黑人 | 日韩精品一区二区久久 | 色综合久久天天 | 天天爽夜夜爽精品视频婷婷 |