Index: src/fclist.c =================================================================== RCS file: /cvs/fontconfig/fontconfig/src/fclist.c,v retrieving revision 1.18 diff -u -r1.18 fclist.c --- src/fclist.c 29 Dec 2004 09:15:17 -0000 1.18 +++ src/fclist.c 7 Mar 2005 11:31:37 -0000 @@ -67,10 +67,11 @@ low = 0; mid = 0; c = 1; + object = FcObjectStaticName (object); while (low <= high) { mid = (low + high) >> 1; - c = strcmp (os->objects[mid], object); + c = os->objects[mid] - object; if (c == 0) return FcTrue; if (c < 0) @@ -82,7 +83,7 @@ mid++; memmove (os->objects + mid + 1, os->objects + mid, (os->nobject - mid) * sizeof (const char *)); - os->objects[mid] = FcObjectStaticName (object); + os->objects[mid] = object; os->nobject++; return FcTrue; } Index: src/fcmatch.c =================================================================== RCS file: /cvs/fontconfig/fontconfig/src/fcmatch.c,v retrieving revision 1.27 diff -u -r1.27 fcmatch.c --- src/fcmatch.c 14 Dec 2004 00:12:25 -0000 1.27 +++ src/fcmatch.c 7 Mar 2005 11:31:37 -0000 @@ -406,7 +406,7 @@ i2 = 0; while (i1 < pat->num && i2 < fnt->num) { - i = strcmp (pat->elts[i1].object, fnt->elts[i2].object); + i = pat->elts[i1].object - fnt->elts[i2].object; if (i > 0) i2++; else if (i < 0) Index: src/fcpat.c =================================================================== RCS file: /cvs/fontconfig/fontconfig/src/fcpat.c,v retrieving revision 1.25 diff -u -r1.25 fcpat.c --- src/fcpat.c 7 Dec 2004 01:36:26 -0000 1.25 +++ src/fcpat.c 7 Mar 2005 11:31:37 -0000 @@ -588,6 +588,7 @@ { int low, high, mid, c; + object = FcObjectStaticName(object); low = 0; high = p->num - 1; c = 1; @@ -595,7 +596,7 @@ while (low <= high) { mid = (low + high) >> 1; - c = strcmp (p->elts[mid].object, object); + c = p->elts[mid].object - object; if (c == 0) return mid; if (c < 0)