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

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

?? patcache.c

?? 遠程桌面連接工具
?? C
字號:
/* $TOG: patcache.c /main/8 1997/06/12 11:51:59 barstow $ *//*Copyright (c) 1991  X ConsortiumPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THEX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER INAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.Except as contained in this notice, the name of the X Consortium shall not beused in advertising or otherwise to promote the sale, use or other dealingsin this Software without prior written authorization from the X Consortium.*//* $XFree86: xc/lib/font/util/patcache.c,v 3.0.4.1 1997/07/05 15:55:37 dawes Exp $ *//* * Author:  Keith Packard, MIT X Consortium */#include    <fontmisc.h>#include    <fontstruct.h>/* * Static sized hash table for looking up font name patterns * * LRU entries, reusing old entries */#define NBUCKETS	16#define NENTRIES	64#define UNSET		(NENTRIES+1)typedef unsigned char	EntryPtr;typedef struct _FontPatternCacheEntry {    struct _FontPatternCacheEntry   *next, **prev;    short			    patlen;    char			    *pattern;    int				    hash;    FontPtr			    pFont;	/* associated font */} FontPatternCacheEntryRec, *FontPatternCacheEntryPtr;typedef struct _FontPatternCache {    FontPatternCacheEntryPtr	buckets[NBUCKETS];    FontPatternCacheEntryRec	entries[NENTRIES];    FontPatternCacheEntryPtr	free;} FontPatternCacheRec;/* Create and initialize cache */FontPatternCachePtrMakeFontPatternCache (){    FontPatternCachePtr	cache;    int			i;    cache = (FontPatternCachePtr) xalloc (sizeof *cache);    if (!cache)	return 0;    for (i = 0; i < NENTRIES; i++) {	cache->entries[i].patlen = 0;	cache->entries[i].pattern = 0;	cache->entries[i].pFont = 0;    }    EmptyFontPatternCache (cache);    return cache;}/* toss cache */voidFreeFontPatternCache (cache)    FontPatternCachePtr	cache;{    int	    i;    for (i = 0; i < NENTRIES; i++)	xfree (cache->entries[i].pattern);    xfree (cache);}/* compute id for string */staticHash (string, len)    char    *string;    int	    len;{    int	hash;    hash = 0;    while (len--)	hash = (hash << 1) ^ *string++;    if (hash < 0)	hash = -hash;    return hash;}/* Empty cache (for rehash) */voidEmptyFontPatternCache (cache)    FontPatternCachePtr	cache;{    int	    i;        for (i = 0; i < NBUCKETS; i++)	cache->buckets[i] = 0;    for (i = 0; i < NENTRIES; i++)    {	cache->entries[i].next = &cache->entries[i+1];	cache->entries[i].prev = 0;	cache->entries[i].pFont = 0;	xfree (cache->entries[i].pattern);	cache->entries[i].pattern = 0;	cache->entries[i].patlen = 0;    }    cache->free = &cache->entries[0];    cache->entries[NENTRIES - 1].next = 0;}/* add entry */voidCacheFontPattern (cache, pattern, patlen, pFont)    FontPatternCachePtr	cache;    char		*pattern;    int			patlen;    FontPtr		pFont;{    FontPatternCacheEntryPtr	e;    char			*newpat;    int				i;    newpat = (char *) xalloc (patlen);    if (!newpat)	return;    if (cache->free)    {	e = cache->free;	cache->free = e->next;    }    else    {    	i = rand ();    	if (i < 0)	    i = -i;    	i %= NENTRIES;	e = &cache->entries[i];	if (e->next)	    e->next->prev = e->prev;	*e->prev = e->next;	xfree (e->pattern);    }    /* set pattern */    memcpy (newpat, pattern, patlen);    e->pattern = newpat;    e->patlen = patlen;    /* link to new hash chain */    e->hash = Hash (pattern, patlen);    i = e->hash % NBUCKETS;    e->next = cache->buckets[i];    if (e->next)	e->next->prev = &(e->next);    cache->buckets[i] = e;    e->prev = &(cache->buckets[i]);    e->pFont = pFont;}/* find matching entry */FontPtrFindCachedFontPattern (cache, pattern, patlen)    FontPatternCachePtr	cache;    char		*pattern;    int			patlen;{    int				hash;    int				i;    FontPatternCacheEntryPtr	e;    hash = Hash (pattern, patlen);    i = hash % NBUCKETS;    for (e = cache->buckets[i]; e; e = e->next)    {	if (e->patlen == patlen && e->hash == hash &&	    !memcmp (e->pattern, pattern, patlen))	{	    return e->pFont;	}    }    return 0;}voidRemoveCachedFontPattern (cache, pFont)    FontPatternCachePtr	cache;    FontPtr		pFont;{    FontPatternCacheEntryPtr	e;    int				i;    for (i = 0; i < NENTRIES; i++)    {	if ((e = &cache->entries[i])->pFont == pFont)	{	    e->pFont = 0;	    if (e->next)		e->next->prev = e->prev;	    *e->prev = e->next;	    e->next = cache->free;	    cache->free = e;	    xfree (e->pattern);	    e->pattern = 0;	}    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费午夜影院| 欧美激情一区在线| 欧美性色aⅴ视频一区日韩精品| 26uuu久久天堂性欧美| 另类中文字幕网| 欧美成人r级一区二区三区| 亚洲大片在线观看| 欧美性猛交xxxxxxxx| 亚洲国产精品人人做人人爽| 欧美午夜不卡在线观看免费| 国产精品久久久久久久久久免费看 | 欧美日韩精品一区视频| 亚洲六月丁香色婷婷综合久久| 成人国产精品免费观看动漫| 国产欧美视频一区二区三区| 懂色av一区二区三区蜜臀| 国产欧美视频一区二区三区| 99热精品一区二区| 精品久久久久99| 亚洲国产一区视频| 欧美色手机在线观看| 亚洲成人免费av| 91麻豆精品国产91久久久资源速度 | 亚洲人成网站在线| 色婷婷综合五月| 一二三区精品福利视频| 日韩一区二区三区在线视频| 成人午夜免费电影| 亚洲网友自拍偷拍| 2021中文字幕一区亚洲| 色婷婷国产精品久久包臀| 六月婷婷色综合| 亚洲另类春色国产| 久久夜色精品国产欧美乱极品| 99久久精品免费看| 麻豆精品视频在线观看| 亚洲欧美偷拍三级| 亚洲免费av网站| 精品国产人成亚洲区| 91网站黄www| 久久爱www久久做| 亚洲女与黑人做爰| 精品久久国产老人久久综合| 91在线观看高清| 国产一区二区三区国产| 午夜激情一区二区| 国产精品天干天干在线综合| 欧美一区日本一区韩国一区| 97精品超碰一区二区三区| 久久99国内精品| 亚洲国产一区视频| 亚洲欧美日韩一区二区| 久久久99精品免费观看不卡| 91精品久久久久久蜜臀| 日本精品一级二级| 91美女福利视频| 处破女av一区二区| 国产一区二区美女诱惑| 日本一道高清亚洲日美韩| 一区二区三区日韩欧美| 国产精品欧美精品| 肉肉av福利一精品导航| 欧美色图天堂网| 国产激情一区二区三区桃花岛亚洲| 亚洲二区在线视频| 中文字幕在线免费不卡| 中文av一区特黄| 久久精品欧美一区二区三区不卡 | 91精品国产免费| 欧美视频一二三区| 91久久免费观看| 99精品国产热久久91蜜凸| 成人av在线网站| av在线不卡电影| jlzzjlzz亚洲日本少妇| 成人18视频在线播放| 成人免费黄色大片| bt7086福利一区国产| 不卡的av电影| 91在线观看一区二区| 色综合中文字幕| 91亚洲大成网污www| 91在线精品秘密一区二区| 国产日韩精品一区二区三区| 91精品国产手机| 91精品国产色综合久久| 日韩欧美亚洲一区二区| 精品欧美乱码久久久久久| 2017欧美狠狠色| 久久久精品免费观看| 欧美精彩视频一区二区三区| 国产精品毛片高清在线完整版| 中文字幕一区二区三| 亚洲欧美偷拍另类a∨色屁股| 夜夜嗨av一区二区三区四季av | 成人av在线播放网站| 91免费国产视频网站| 欧美亚洲综合久久| 欧美一区二区三区系列电影| 欧美va在线播放| 亚洲国产精品传媒在线观看| 亚洲人成精品久久久久久| 亚洲一区二区视频| 日本中文一区二区三区| 国产成人高清在线| 色哟哟在线观看一区二区三区| 欧美日韩国产首页| 久久免费美女视频| 久久国产人妖系列| 久久精品国产精品亚洲红杏 | 国产福利精品一区二区| 99视频一区二区| 欧美乱妇23p| 久久久久久久综合色一本| 国产精品久久影院| 午夜精品久久久久久久蜜桃app| 国模少妇一区二区三区| 色综合天天性综合| 欧美一级理论片| 亚洲人成影院在线观看| 视频一区欧美精品| 成人黄色av网站在线| 91精品国产色综合久久不卡蜜臀| 国产日韩欧美a| 午夜av区久久| 99精品视频在线观看免费| 日韩视频一区在线观看| 亚洲女子a中天字幕| 国产一区二区三区四区五区入口 | 最新热久久免费视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 99re这里只有精品6| 日韩欧美电影一区| 亚洲精选免费视频| 国产精品综合在线视频| 91精品国产综合久久蜜臀| 亚洲欧洲综合另类在线| 国产成人免费在线视频| 欧美一区2区视频在线观看| 亚洲欧洲制服丝袜| 高清不卡在线观看| 精品国产乱码久久久久久老虎 | 99久久婷婷国产综合精品| 精品国产青草久久久久福利| 丝袜美腿亚洲一区| 色狠狠一区二区| 国产精品视频你懂的| 狠狠色狠狠色综合| 欧美喷水一区二区| 亚洲制服丝袜av| 色综合欧美在线| 亚洲欧美日韩国产综合在线| 成人精品视频一区二区三区| www国产精品av| 美女视频网站久久| 7777精品伊人久久久大香线蕉的 | 在线免费观看成人短视频| 中文字幕一区二区不卡 | 狠狠色综合日日| 日韩欧美亚洲国产另类| 日韩中文字幕亚洲一区二区va在线| 91社区在线播放| 综合久久久久久| 91丝袜美腿高跟国产极品老师| 亚洲国产精品99久久久久久久久| 极品少妇一区二区| 欧美成人精品高清在线播放| 免费人成在线不卡| 欧美一级免费大片| 美国精品在线观看| 久久免费美女视频| 福利电影一区二区三区| 国产午夜精品久久久久久免费视| 国产一区二区精品久久99| 精品国精品国产尤物美女| 久久99精品久久久久婷婷| 久久久久久久久蜜桃| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 日韩理论片网站| 91麻豆国产在线观看| 一区二区三区四区在线播放| 在线免费观看一区| 婷婷久久综合九色国产成人 | 成人午夜电影小说| 亚洲欧美在线视频观看| 欧美视频在线一区| 美腿丝袜在线亚洲一区| 久久精品在线观看| 成人一区二区三区| 一区二区高清免费观看影视大全| 欧美日韩一区二区三区在线| 免费人成在线不卡| 国产精品入口麻豆原神| 91福利在线播放| 精品一区二区三区免费播放| 成人免费在线视频观看| 欧美精三区欧美精三区| 国产精品一卡二卡| 一区二区在线观看视频| 日韩免费看的电影|