src/fchash.c | 2 ++ src/fcmatch.c | 2 ++ 2 files changed, 4 insertions(+) New commits: commit aa85a2b3b6b652c079e895865e800e3d9b60a5f5 Author: Akira TAGOH <akira@xxxxxxxxx> Date: Tue Dec 19 12:16:48 2017 +0900 Try to get current instance of FcConfig as far as possible diff --git a/src/fcmatch.c b/src/fcmatch.c index 95bb204..f06d98a 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -653,6 +653,8 @@ FcFontRenderPrepare (FcConfig *config, if (!l) goto bail0; dir = FcStrDirname (FcValueString (&l->value)); + if (!config) + config = FcConfigGetCurrent (); if (config && FcHashTableFind (config->alias_table, dir, (void **) &alias)) { FcChar8 *base = FcStrBasename (FcValueString (&l->value)); commit 0b59a65a71b5482aab63a2fe7eff2820f2512941 Author: Alexander Larsson <alexl@xxxxxxxxxx> Date: Mon Dec 18 16:17:10 2017 +0100 fchash: Fix replace When we replace a bucket in the hashtable we have to update the next pointer too, or we lose all the other elements that hashed to this key. diff --git a/src/fchash.c b/src/fchash.c index 5c1a281..ba6a453 100644 --- a/src/fchash.c +++ b/src/fchash.c @@ -182,6 +182,7 @@ FcHashTableAddInternal (FcHashTable *table, { if (replace) { + bucket->next = b->next; if (!fc_atomic_ptr_cmpexch (prev, b, bucket)) goto retry; bucket = b; @@ -191,6 +192,7 @@ FcHashTableAddInternal (FcHashTable *table, goto destroy; } } + bucket->next = NULL; if (!fc_atomic_ptr_cmpexch (prev, b, bucket)) goto retry; _______________________________________________ Fontconfig mailing list Fontconfig@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/fontconfig