to FcValueListPtrU.
Only invoke strlen() when really necessary.
reviewed by: plam
reviewed by: plam
+2005-11-21 Dirk Mueller <dmueller@suse.com>
+ reviewed by: plam
+
+ * src/fcmatch.c (FcCompareValueList):
+
+ Manually perform inlining & partial redundancy elimination to
+ reduce calls to FcValueListPtrU.
+
+2005-11-21 Dirk Mueller <dmueller@suse.com>
+ reviewed by: plam
+
+ * src/fcstr.c (FcStrFree, FcStrCaseWalkerInit, FcStrCaseWalkerLong,
+ FcStrCaseWalkerNext, FcStrCaseWalkerNextIgnoreBlanks):
+
+ Only invoke strlen() when really necessary.
+
2005-11-19 Matthias Clasen <mclasen@redhat.com>
reviewed by: plam
double *value,
FcResult *result)
{
- FcValueListPtr v1, v2;
+ FcValueListPtr v1, v2;
+ FcValueList *v1_ptrU, *v2_ptrU;
double v, best, bestStrong, bestWeak;
int i;
int j;
bestStrong = 1e99;
bestWeak = 1e99;
j = 0;
- for (v1 = v1orig; FcValueListPtrU(v1);
- v1 = FcValueListPtrU(v1)->next)
+ for (v1 = v1orig, v1_ptrU = FcValueListPtrU(v1); v1_ptrU;
+ v1 = FcValueListPtrU(v1)->next, v1_ptrU = FcValueListPtrU(v1))
{
- for (v2 = v2orig; FcValueListPtrU(v2);
+ for (v2 = v2orig, v2_ptrU = FcValueListPtrU(v2); FcValueListPtrU(v2);
v2 = FcValueListPtrU(v2)->next)
{
v = (*_FcMatchers[i].compare) (_FcMatchers[i].object,
- &FcValueListPtrU(v1)->value,
- &FcValueListPtrU(v2)->value);
+ &v1_ptrU->value,
+ &v2_ptrU->value);
if (v < 0)
{
*result = FcResultTypeMismatch;
if (v < best)
{
if (bestValue)
- *bestValue = FcValueCanonicalize(&FcValueListPtrU(v2)->value);
+ *bestValue = FcValueCanonicalize(&v2_ptrU->value);
best = v;
}
- if (FcValueListPtrU(v1)->binding == FcValueBindingStrong)
+ if (v1_ptrU->binding == FcValueBindingStrong)
{
if (v < bestStrong)
bestStrong = v;
typedef struct _FcCaseWalker {
const FcChar8 *read;
const FcChar8 *src;
- int len;
FcChar8 utf8[FC_MAX_CASE_FOLD_CHARS + 1];
} FcCaseWalker;
{
w->src = src;
w->read = 0;
- w->len = strlen ((char *) src);
}
static FcChar8
{
FcChar32 ucs4;
int slen;
+ int len = strlen((char*)w->src);
- slen = FcUtf8ToUcs4 (w->src - 1, &ucs4, w->len + 1);
+ slen = FcUtf8ToUcs4 (w->src - 1, &ucs4, len + 1);
if (slen <= 0)
return r;
if (FC_MIN_FOLD_CHAR <= ucs4 && ucs4 <= FC_MAX_FOLD_CHAR)
/* consume rest of src utf-8 bytes */
w->src += slen - 1;
- w->len -= slen - 1;
/* read from temp buffer */
w->utf8[dlen] = '\0';
w->read = 0;
}
r = *w->src++;
- --w->len;
if ((r & 0xc0) == 0xc0)
return FcStrCaseWalkerLong (w, r);
do
{
r = *w->src++;
- --w->len;
} while (r == ' ');
if ((r & 0xc0) == 0xc0)