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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? db_file.xs

?? linux 下的源代碼分析閱讀器 red hat公司新版
?? XS
?? 第 1 頁 / 共 4 頁
字號:
	l_value.size = value.size;	if ( temp_cursor->c_get(temp_cursor, &l_key, &l_value, DB_SET) != 0) {	    (void)temp_cursor->c_close(temp_cursor);	    return (-1);	}	status = temp_cursor->c_put(temp_cursor, &key, &value, flags);	(void)temp_cursor->c_close(temp_cursor);	            return (status) ;    }	            if (flagSet(flags, R_CURSOR)) {	return ((db->cursor)->c_put)(db->cursor, &key, &value, DB_CURRENT);    }    if (flagSet(flags, R_SETCURSOR)) {	if ((db->dbp)->put(db->dbp, NULL, &key, &value, 0) != 0)		return -1 ;        return ((db->cursor)->c_get)(db->cursor, &key, &value, DB_SET_RANGE);        }    return ((db->dbp)->put)(db->dbp, NULL, &key, &value, flags) ;}#endif /* DB_VERSION_MAJOR */static voidtidyUp(DB_File db){    db->aborted = TRUE ;}static int#ifdef AT_LEAST_DB_3_2#ifdef CAN_PROTOTYPEbtree_compare(DB * db, const DBT *key1, const DBT *key2)#elsebtree_compare(db, key1, key2)DB * db ;const DBT * key1 ;const DBT * key2 ;#endif /* CAN_PROTOTYPE */#else /* Berkeley DB < 3.2 */#ifdef CAN_PROTOTYPEbtree_compare(const DBT *key1, const DBT *key2)#elsebtree_compare(key1, key2)const DBT * key1 ;const DBT * key2 ;#endif#endif{#ifdef dTHX    dTHX;#endif        dSP ;    dMY_CXT ;    void * data1, * data2 ;    int retval ;    int count ;        if (CurrentDB->in_compare) {        tidyUp(CurrentDB);        croak ("DB_File btree_compare: recursion detected\n") ;    }    data1 = (char *) key1->data ;    data2 = (char *) key2->data ;#ifndef newSVpvn    /* As newSVpv will assume that the data pointer is a null terminated C        string if the size parameter is 0, make sure that data points to an        empty string if the length is 0    */    if (key1->size == 0)        data1 = "" ;     if (key2->size == 0)        data2 = "" ;#endif	    ENTER ;    SAVETMPS;    SAVESPTR(CurrentDB);    CurrentDB->in_compare = FALSE;    SAVEINT(CurrentDB->in_compare);    CurrentDB->in_compare = TRUE;    PUSHMARK(SP) ;    EXTEND(SP,2) ;    PUSHs(sv_2mortal(newSVpvn((const char*)data1,key1->size)));    PUSHs(sv_2mortal(newSVpvn((const char*)data2,key2->size)));    PUTBACK ;    count = perl_call_sv(CurrentDB->compare, G_SCALAR);     SPAGAIN ;    if (count != 1){        tidyUp(CurrentDB);        croak ("DB_File btree_compare: expected 1 return value from compare sub, got %d\n", count) ;    }    retval = POPi ;    PUTBACK ;    FREETMPS ;    LEAVE ;    return (retval) ;}static DB_Prefix_t#ifdef AT_LEAST_DB_3_2#ifdef CAN_PROTOTYPEbtree_prefix(DB * db, const DBT *key1, const DBT *key2)#elsebtree_prefix(db, key1, key2)Db * db ;const DBT * key1 ;const DBT * key2 ;#endif#else /* Berkeley DB < 3.2 */#ifdef CAN_PROTOTYPEbtree_prefix(const DBT *key1, const DBT *key2)#elsebtree_prefix(key1, key2)const DBT * key1 ;const DBT * key2 ;#endif#endif{#ifdef dTHX    dTHX;#endif        dSP ;    dMY_CXT ;    char * data1, * data2 ;    int retval ;    int count ;        if (CurrentDB->in_prefix){        tidyUp(CurrentDB);        croak ("DB_File btree_prefix: recursion detected\n") ;    }    data1 = (char *) key1->data ;    data2 = (char *) key2->data ;#ifndef newSVpvn    /* As newSVpv will assume that the data pointer is a null terminated C        string if the size parameter is 0, make sure that data points to an        empty string if the length is 0    */    if (key1->size == 0)        data1 = "" ;    if (key2->size == 0)        data2 = "" ;#endif	    ENTER ;    SAVETMPS;    SAVESPTR(CurrentDB);    CurrentDB->in_prefix = FALSE;    SAVEINT(CurrentDB->in_prefix);    CurrentDB->in_prefix = TRUE;    PUSHMARK(SP) ;    EXTEND(SP,2) ;    PUSHs(sv_2mortal(newSVpvn(data1,key1->size)));    PUSHs(sv_2mortal(newSVpvn(data2,key2->size)));    PUTBACK ;    count = perl_call_sv(CurrentDB->prefix, G_SCALAR);     SPAGAIN ;    if (count != 1){        tidyUp(CurrentDB);        croak ("DB_File btree_prefix: expected 1 return value from prefix sub, got %d\n", count) ;    }     retval = POPi ;     PUTBACK ;    FREETMPS ;    LEAVE ;    return (retval) ;}#ifdef BERKELEY_DB_1#    define HASH_CB_SIZE_TYPE size_t#else#    define HASH_CB_SIZE_TYPE u_int32_t#endifstatic DB_Hash_t#ifdef AT_LEAST_DB_3_2#ifdef CAN_PROTOTYPEhash_cb(DB * db, const void *data, u_int32_t size)#elsehash_cb(db, data, size)DB * db ;const void * data ;HASH_CB_SIZE_TYPE size ;#endif#else /* Berkeley DB < 3.2 */#ifdef CAN_PROTOTYPEhash_cb(const void *data, HASH_CB_SIZE_TYPE size)#elsehash_cb(data, size)const void * data ;HASH_CB_SIZE_TYPE size ;#endif#endif{#ifdef dTHX    dTHX;#endif        dSP ;    dMY_CXT;    int retval = 0;    int count ;    if (CurrentDB->in_hash){        tidyUp(CurrentDB);        croak ("DB_File hash callback: recursion detected\n") ;    }#ifndef newSVpvn    if (size == 0)        data = "" ;#endif	     /* DGH - Next two lines added to fix corrupted stack problem */    ENTER ;    SAVETMPS;    SAVESPTR(CurrentDB);    CurrentDB->in_hash = FALSE;    SAVEINT(CurrentDB->in_hash);    CurrentDB->in_hash = TRUE;    PUSHMARK(SP) ;    XPUSHs(sv_2mortal(newSVpvn((char*)data,size)));    PUTBACK ;    count = perl_call_sv(CurrentDB->hash, G_SCALAR);     SPAGAIN ;    if (count != 1){        tidyUp(CurrentDB);        croak ("DB_File hash_cb: expected 1 return value from hash sub, got %d\n", count) ;    }    retval = POPi ;    PUTBACK ;    FREETMPS ;    LEAVE ;    return (retval) ;}#ifdef WANT_ERRORstatic void#ifdef AT_LEAST_DB_4_3db_errcall_cb(const DB_ENV* dbenv, const char * db_errpfx, const char * buffer)#elsedb_errcall_cb(const char * db_errpfx, char * buffer)#endif{#ifdef dTHX    dTHX;#endif        SV * sv = perl_get_sv(ERR_BUFF, FALSE) ;    if (sv) {        if (db_errpfx)            sv_setpvf(sv, "%s: %s", db_errpfx, buffer) ;        else            sv_setpv(sv, buffer) ;    }} #endif#if defined(TRACE) && defined(BERKELEY_DB_1_OR_2)static void#ifdef CAN_PROTOTYPEPrintHash(INFO *hash)#elsePrintHash(hash)INFO * hash ;#endif{    printf ("HASH Info\n") ;    printf ("  hash      = %s\n", 		(hash->db_HA_hash != NULL ? "redefined" : "default")) ;    printf ("  bsize     = %d\n", hash->db_HA_bsize) ;    printf ("  ffactor   = %d\n", hash->db_HA_ffactor) ;    printf ("  nelem     = %d\n", hash->db_HA_nelem) ;    printf ("  cachesize = %d\n", hash->db_HA_cachesize) ;    printf ("  lorder    = %d\n", hash->db_HA_lorder) ;}static void#ifdef CAN_PROTOTYPEPrintRecno(INFO *recno)#elsePrintRecno(recno)INFO * recno ;#endif{    printf ("RECNO Info\n") ;    printf ("  flags     = %d\n", recno->db_RE_flags) ;    printf ("  cachesize = %d\n", recno->db_RE_cachesize) ;    printf ("  psize     = %d\n", recno->db_RE_psize) ;    printf ("  lorder    = %d\n", recno->db_RE_lorder) ;    printf ("  reclen    = %lu\n", (unsigned long)recno->db_RE_reclen) ;    printf ("  bval      = %d 0x%x\n", recno->db_RE_bval, recno->db_RE_bval) ;    printf ("  bfname    = %d [%s]\n", recno->db_RE_bfname, recno->db_RE_bfname) ;}static void#ifdef CAN_PROTOTYPEPrintBtree(INFO *btree)#elsePrintBtree(btree)INFO * btree ;#endif{    printf ("BTREE Info\n") ;    printf ("  compare    = %s\n", 		(btree->db_BT_compare ? "redefined" : "default")) ;    printf ("  prefix     = %s\n", 		(btree->db_BT_prefix ? "redefined" : "default")) ;    printf ("  flags      = %d\n", btree->db_BT_flags) ;    printf ("  cachesize  = %d\n", btree->db_BT_cachesize) ;    printf ("  psize      = %d\n", btree->db_BT_psize) ;#ifndef DB_VERSION_MAJOR    printf ("  maxkeypage = %d\n", btree->db_BT_maxkeypage) ;    printf ("  minkeypage = %d\n", btree->db_BT_minkeypage) ;#endif    printf ("  lorder     = %d\n", btree->db_BT_lorder) ;}#else#define PrintRecno(recno)#define PrintHash(hash)#define PrintBtree(btree)#endif /* TRACE */static I32#ifdef CAN_PROTOTYPEGetArrayLength(pTHX_ DB_File db)#elseGetArrayLength(db)DB_File db ;#endif{    DBT		key ;    DBT		value ;    int		RETVAL ;    DBT_clear(key) ;    DBT_clear(value) ;    RETVAL = do_SEQ(db, key, value, R_LAST) ;    if (RETVAL == 0)        RETVAL = *(I32 *)key.data ;    else /* No key means empty file */        RETVAL = 0 ;    return ((I32)RETVAL) ;}static recno_t#ifdef CAN_PROTOTYPEGetRecnoKey(pTHX_ DB_File db, I32 value)#elseGetRecnoKey(db, value)DB_File  db ;I32      value ;#endif{    if (value < 0) {	/* Get the length of the array */	I32 length = GetArrayLength(aTHX_ db) ;	/* check for attempt to write before start of array */	if (length + value + 1 <= 0) {            tidyUp(db);	    croak("Modification of non-creatable array value attempted, subscript %ld", (long)value) ;	}	value = length + value + 1 ;    }    else        ++ value ;    return value ;}static DB_File#ifdef CAN_PROTOTYPEParseOpenInfo(pTHX_ int isHASH, char *name, int flags, int mode, SV *sv)#elseParseOpenInfo(isHASH, name, flags, mode, sv)int    isHASH ;char * name ;int    flags ;int    mode ;SV *   sv ;#endif{#ifdef BERKELEY_DB_1_OR_2 /* Berkeley DB Version 1  or 2 */    SV **	svp;    HV *	action ;    DB_File	RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ;    void *	openinfo = NULL ;    INFO	* info  = &RETVAL->info ;    STRLEN	n_a;    dMY_CXT;#ifdef TRACE        printf("In ParseOpenInfo name=[%s] flags=[%d] mode=[%d] SV NULL=[%d]\n", 		    name, flags, mode, sv == NULL) ;  #endif    Zero(RETVAL, 1, DB_File_type) ;    /* Default to HASH */    RETVAL->filtering = 0 ;    RETVAL->filter_fetch_key = RETVAL->filter_store_key =     RETVAL->filter_fetch_value = RETVAL->filter_store_value =    RETVAL->hash = RETVAL->compare = RETVAL->prefix = NULL ;    RETVAL->type = DB_HASH ;     /* DGH - Next line added to avoid SEGV on existing hash DB */    CurrentDB = RETVAL;     /* fd for 1.86 hash in memory files doesn't return -1 like 1.85 */    RETVAL->in_memory = (name == NULL) ;    if (sv)    {        if (! SvROK(sv) )            croak ("type parameter is not a reference") ;        svp  = hv_fetch( (HV*)SvRV(sv), "GOT", 3, FALSE) ;        if (svp && SvOK(*svp))            action  = (HV*) SvRV(*svp) ;	else	    croak("internal error") ;        if (sv_isa(sv, "DB_File::HASHINFO"))        {	    if (!isHASH)	        croak("DB_File can only tie an associative array to a DB_HASH database") ;            RETVAL->type = DB_HASH ;            openinfo = (void*)info ;              svp = hv_fetch(action, "hash", 4, FALSE);             if (svp && SvOK(*svp))            {                info->db_HA_hash = hash_cb ;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级精品三级| 国产在线一区观看| 国产一区二区三区四| 日本韩国精品在线| 国产亚洲成年网址在线观看| 亚洲不卡一区二区三区| av在线不卡电影| 国产aⅴ精品一区二区三区色成熟| 成人自拍视频在线观看| 韩国欧美一区二区| 91精品国产色综合久久不卡蜜臀 | 国产精品美女www爽爽爽| 亚洲成a人v欧美综合天堂下载| 粉嫩一区二区三区性色av| 日韩天堂在线观看| 天涯成人国产亚洲精品一区av| 91麻豆123| 国产精品国产三级国产aⅴ入口| 麻豆精品新av中文字幕| 91精品在线麻豆| 亚洲mv在线观看| 色88888久久久久久影院按摩 | 99热国产精品| 欧美激情在线看| 粉嫩av亚洲一区二区图片| 日韩精品中文字幕一区二区三区| 日本怡春院一区二区| 欧美精品丝袜中出| 日韩福利电影在线观看| 欧美日韩国产精品成人| 日本在线不卡一区| 精品久久久久久最新网址| 美国毛片一区二区| 欧美精品一区二区三区视频| 国内精品嫩模私拍在线| 久久久精品天堂| 成人美女视频在线看| 欧美高清在线精品一区| 99精品久久99久久久久| 亚洲精品视频一区二区| 欧美视频第二页| 免费观看在线综合| 国产日韩高清在线| 91视频国产观看| 性做久久久久久免费观看 | 国产精品素人视频| av中文字幕不卡| 亚洲高清在线精品| 日韩视频免费观看高清完整版在线观看 | 欧美va亚洲va香蕉在线| 精品在线一区二区三区| 欧美国产亚洲另类动漫| 色综合天天综合网天天看片| 首页国产欧美久久| 久久久久亚洲蜜桃| 在线视频你懂得一区| 日本v片在线高清不卡在线观看| 久久麻豆一区二区| 91美女片黄在线观看91美女| 首页综合国产亚洲丝袜| 久久久精品蜜桃| 欧美午夜不卡在线观看免费| 国产在线不卡一卡二卡三卡四卡| 中文字幕免费在线观看视频一区| 欧美撒尿777hd撒尿| 国产剧情一区二区| 亚洲一区二区中文在线| 精品久久久久香蕉网| 色婷婷综合五月| 国产一区二区伦理| 亚洲电影视频在线| 欧美激情中文字幕一区二区| 欧美日韩国产综合久久| 国产宾馆实践打屁股91| 三级影片在线观看欧美日韩一区二区| 久久蜜桃av一区精品变态类天堂 | 在线看国产一区二区| 国内精品不卡在线| 五月婷婷久久丁香| 国产精品久久二区二区| 日韩精品中午字幕| 欧美四级电影在线观看| 波多野结衣在线aⅴ中文字幕不卡| 亚洲第一主播视频| 亚洲日本va在线观看| 精品电影一区二区三区 | 美女一区二区三区| 亚洲制服丝袜av| 国产精品蜜臀在线观看| 欧美一级xxx| 欧美色综合网站| 色综合久久久网| 波波电影院一区二区三区| 久久99精品久久久久久国产越南 | 成人激情免费电影网址| 九九国产精品视频| 久久精品国产99久久6| 亚洲成在人线免费| 一区二区高清免费观看影视大全 | 天堂在线亚洲视频| 亚洲一线二线三线视频| 亚洲精品中文字幕乱码三区| 欧美国产视频在线| 国产精品无圣光一区二区| 久久精品综合网| 久久色.com| 中文一区一区三区高中清不卡| 精品久久久久久最新网址| 日韩精品一区在线观看| 精品久久久久久久久久久久久久久| 欧美性猛交xxxxxx富婆| 欧美日韩小视频| 欧美美女一区二区| 日韩视频永久免费| 欧美videos中文字幕| 久久蜜桃av一区精品变态类天堂| 2023国产精品视频| 国产欧美精品一区| 国产精品福利电影一区二区三区四区| 国产精品视频一区二区三区不卡| 中文欧美字幕免费| 亚洲人成精品久久久久久| 一区二区三区精密机械公司| 亚洲国产欧美在线人成| 午夜免费欧美电影| 极品少妇xxxx精品少妇| 粉嫩欧美一区二区三区高清影视| 99久久精品一区| 欧美天堂一区二区三区| 欧美电影免费观看完整版| 欧美成人乱码一区二区三区| 久久九九全国免费| 亚洲私人黄色宅男| 日韩—二三区免费观看av| 另类小说综合欧美亚洲| 成人午夜又粗又硬又大| 99在线热播精品免费| 欧美日韩的一区二区| 久久久精品免费免费| 亚洲人精品一区| 免费欧美高清视频| 成人avav在线| 欧美一区二区免费观在线| 久久精品男人天堂av| 一区二区三区日韩| 国产一区在线视频| 日本电影欧美片| 亚洲精品一线二线三线| 亚洲欧美日本在线| 久久精品国产99国产| 91免费在线播放| 精品欧美一区二区在线观看| 自拍偷拍国产精品| 美女在线视频一区| 日本高清不卡一区| 国产午夜一区二区三区| 亚洲www啪成人一区二区麻豆| 国产成人av电影在线| 欧美另类变人与禽xxxxx| 国产精品理论在线观看| 另类小说欧美激情| 91国模大尺度私拍在线视频| www国产成人| 日本不卡一区二区| 91一区在线观看| ww久久中文字幕| 五月婷婷激情综合网| 91亚洲精品乱码久久久久久蜜桃| 日韩一区二区三区四区五区六区| 亚洲欧美国产毛片在线| 国产精品影视在线观看| 91精品国产乱码久久蜜臀| 亚洲欧美色图小说| 成人免费的视频| 国产亚洲视频系列| 九色综合国产一区二区三区| 欧美精品一二三四| 一区二区高清在线| 91黄色激情网站| ●精品国产综合乱码久久久久| 国产麻豆成人传媒免费观看| 51精品秘密在线观看| 亚洲777理论| 欧美日韩一区二区三区在线看| 亚洲视频免费在线| aaa国产一区| 国产精品乱码人人做人人爱 | 国产一区二区美女诱惑| 5月丁香婷婷综合| 婷婷综合五月天| 欧美日韩成人综合在线一区二区| 亚洲天堂网中文字| 一本大道综合伊人精品热热| 国产精品二区一区二区aⅴ污介绍| 国产精品系列在线观看| 国产午夜精品一区二区三区嫩草| 国产一区二区不卡在线| 久久久蜜桃精品| 成人国产精品视频| 中文字幕日韩一区二区|