diff options
author | Ross Burton <ross@burtonini.com> | 2005-03-31 19:16:49 +0000 |
---|---|---|
committer | Ross Burton <ross@burtonini.com> | 2005-03-31 19:16:49 +0000 |
commit | ae7d0f35938693d250f09165fb6486b9e0f4b9bd (patch) | |
tree | 104b76d911f8e10496c1a53a308ffb71b3bd4e9d | |
parent | 156032744ee08a5d6a60e1bc1c2e0fc3702567d7 (diff) |
Put all FcPattern objects though FcObjectStaticName and do pointer trather
than string compares
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/fclist.c | 5 | ||||
-rw-r--r-- | src/fcmatch.c | 2 | ||||
-rw-r--r-- | src/fcpat.c | 3 |
4 files changed, 14 insertions, 4 deletions
@@ -1,3 +1,11 @@ +2005-03-31 Ross Burton <ross@burtonini.com> + + * src/fclist.c: + * src/fcmatch.c: + * src/fcpat.c: + Run all FcPattern objects through FcObjectStaticName, so that + compares can be done on pointers instead of strings (#2659) + 2005-03-17 Tor Lillqvist <tml@novell.com> * src/fontconfig.def.in: Add the .dll to the dll name. diff --git a/src/fclist.c b/src/fclist.c index aaa9061..ec47ddc 100644 --- a/src/fclist.c +++ b/src/fclist.c @@ -67,10 +67,11 @@ FcObjectSetAdd (FcObjectSet *os, const char *object) 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 @@ FcObjectSetAdd (FcObjectSet *os, const char *object) 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; } diff --git a/src/fcmatch.c b/src/fcmatch.c index 9afe495..9a6b35f 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -406,7 +406,7 @@ FcCompare (FcPattern *pat, 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) diff --git a/src/fcpat.c b/src/fcpat.c index 2fea173..32054e1 100644 --- a/src/fcpat.c +++ b/src/fcpat.c @@ -588,6 +588,7 @@ FcPatternPosition (const FcPattern *p, const char *object) { int low, high, mid, c; + object = FcObjectStaticName(object); low = 0; high = p->num - 1; c = 1; @@ -595,7 +596,7 @@ FcPatternPosition (const FcPattern *p, const char *object) 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) |