Refactor FcCacheBankToIndex into an inlineable part (in fcint.h) which
checks the front of the list and a non-inlineable part which finds and moves the appropriate element to the front of the list. reviewed by: plam
This commit is contained in:
parent
9fad72abaf
commit
b8948e8542
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
||||||
|
2005-11-29 Dirk Mueller <dmueller@suse.de>
|
||||||
|
reviewed by: plam
|
||||||
|
|
||||||
|
* fc-lang/fc-lang.c:
|
||||||
|
* src/fccache.c (FcDirCacheConsume, FcCacheHaveBank,
|
||||||
|
FcCacheBankToIndex, FcCacheBankToIndexMTF,
|
||||||
|
FcCacheAddBankDir):
|
||||||
|
* src/fcint.h:
|
||||||
|
|
||||||
|
Refactor FcCacheBankToIndex into an inlineable part
|
||||||
|
(in fcint.h) which checks the front of the list and a
|
||||||
|
non-inlineable part which finds and moves the appropriate element
|
||||||
|
to the front of the list.
|
||||||
|
|
||||||
2005-11-29 Patrick Lam <plam@mit.edu>
|
2005-11-29 Patrick Lam <plam@mit.edu>
|
||||||
* src/fccfg.c (FcConfigBuildFonts):
|
* src/fccfg.c (FcConfigBuildFonts):
|
||||||
* src/fccache.c (FcCacheReadDirs):
|
* src/fccache.c (FcCacheReadDirs):
|
||||||
|
|
|
@ -51,8 +51,11 @@ FcMemFree (int kind, int size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int* _fcBankId = 0;
|
||||||
|
int* _fcBankIdx = 0;
|
||||||
|
|
||||||
int
|
int
|
||||||
FcCacheBankToIndex (int bank)
|
FcCacheBankToIndexMTF (int bank)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -783,11 +783,11 @@ FcDirCacheConsume (int fd, const char * dir, FcFontSet *set)
|
||||||
if (current_dir_block == MAP_FAILED)
|
if (current_dir_block == MAP_FAILED)
|
||||||
return FcFalse;
|
return FcFalse;
|
||||||
|
|
||||||
|
FcCacheAddBankDir (metadata.bank, dir);
|
||||||
|
|
||||||
if (!FcFontSetUnserialize (&metadata, set, current_dir_block))
|
if (!FcFontSetUnserialize (&metadata, set, current_dir_block))
|
||||||
return FcFalse;
|
return FcFalse;
|
||||||
|
|
||||||
FcCacheAddBankDir (metadata.bank, dir);
|
|
||||||
|
|
||||||
return FcTrue;
|
return FcTrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -989,7 +989,7 @@ FcCacheMachineSignature ()
|
||||||
}
|
}
|
||||||
|
|
||||||
static int banks_ptr = 0, banks_alloc = 0;
|
static int banks_ptr = 0, banks_alloc = 0;
|
||||||
static int * bankId = 0, * bankIdx = 0;
|
int * _fcBankId = 0, * _fcBankIdx = 0;
|
||||||
static const char ** bankDirs = 0;
|
static const char ** bankDirs = 0;
|
||||||
|
|
||||||
static FcBool
|
static FcBool
|
||||||
|
@ -1001,25 +1001,25 @@ FcCacheHaveBank (int bank)
|
||||||
return FcTrue;
|
return FcTrue;
|
||||||
|
|
||||||
for (i = 0; i < banks_ptr; i++)
|
for (i = 0; i < banks_ptr; i++)
|
||||||
if (bankId[i] == bank)
|
if (_fcBankId[i] == bank)
|
||||||
return FcTrue;
|
return FcTrue;
|
||||||
|
|
||||||
return FcFalse;
|
return FcFalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
FcCacheBankToIndex (int bank)
|
FcCacheBankToIndexMTF (int bank)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
for (i = 0; i < banks_ptr; i++)
|
for (i = 0; i < banks_ptr; i++)
|
||||||
if (bankId[bankIdx[i]] == bank)
|
if (_fcBankId[_fcBankIdx[i]] == bank)
|
||||||
{
|
{
|
||||||
int t = bankIdx[i];
|
int t = _fcBankIdx[i];
|
||||||
|
|
||||||
for (j = i; j > 0; j--)
|
for (j = i; j > 0; j--)
|
||||||
bankIdx[j] = bankIdx[j-1];
|
_fcBankIdx[j] = _fcBankIdx[j-1];
|
||||||
bankIdx[0] = t;
|
_fcBankIdx[0] = t;
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1028,15 +1028,15 @@ FcCacheBankToIndex (int bank)
|
||||||
int * b, * bidx;
|
int * b, * bidx;
|
||||||
const char ** bds;
|
const char ** bds;
|
||||||
|
|
||||||
b = realloc (bankId, (banks_alloc + 4) * sizeof(int));
|
b = realloc (_fcBankId, (banks_alloc + 4) * sizeof(int));
|
||||||
if (!b)
|
if (!b)
|
||||||
return -1;
|
return -1;
|
||||||
bankId = b;
|
_fcBankId = b;
|
||||||
|
|
||||||
bidx = realloc (bankIdx, (banks_alloc + 4) * sizeof(int));
|
bidx = realloc (_fcBankIdx, (banks_alloc + 4) * sizeof(int));
|
||||||
if (!bidx)
|
if (!bidx)
|
||||||
return -1;
|
return -1;
|
||||||
bankIdx = bidx;
|
_fcBankIdx = bidx;
|
||||||
|
|
||||||
bds = realloc (bankDirs, (banks_alloc + 4) * sizeof (char *));
|
bds = realloc (bankDirs, (banks_alloc + 4) * sizeof (char *));
|
||||||
if (!bds)
|
if (!bds)
|
||||||
|
@ -1047,15 +1047,15 @@ FcCacheBankToIndex (int bank)
|
||||||
}
|
}
|
||||||
|
|
||||||
i = banks_ptr++;
|
i = banks_ptr++;
|
||||||
bankId[i] = bank;
|
_fcBankId[i] = bank;
|
||||||
bankIdx[i] = i;
|
_fcBankIdx[i] = i;
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
FcCacheAddBankDir (int bank, const char * dir)
|
FcCacheAddBankDir (int bank, const char * dir)
|
||||||
{
|
{
|
||||||
int bi = FcCacheBankToIndex (bank);
|
int bi = FcCacheBankToIndexMTF (bank);
|
||||||
|
|
||||||
if (bi < 0)
|
if (bi < 0)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -462,8 +462,15 @@ FcDirCacheWrite (FcFontSet *set, FcStrSet * dirs, const FcChar8 *dir);
|
||||||
FcBool
|
FcBool
|
||||||
FcDirCacheRead (FcFontSet * set, FcStrSet * dirs, const FcChar8 *dir);
|
FcDirCacheRead (FcFontSet * set, FcStrSet * dirs, const FcChar8 *dir);
|
||||||
|
|
||||||
|
extern int *_fcBankId, *_fcBankIdx;
|
||||||
int
|
int
|
||||||
FcCacheBankToIndex (int bank);
|
FcCacheBankToIndexMTF (int bank);
|
||||||
|
|
||||||
|
static __inline__ int
|
||||||
|
FcCacheBankToIndex (int bank)
|
||||||
|
{
|
||||||
|
return _fcBankId[*_fcBankIdx] == bank ? *_fcBankIdx : FcCacheBankToIndexMTF(bank);
|
||||||
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
FcCacheFindBankDir (int bank);
|
FcCacheFindBankDir (int bank);
|
||||||
|
|
Loading…
Reference in New Issue