From 4c9101f7044b68aa121557c796384e4bdf08f73f Mon Sep 17 00:00:00 2001 From: Akira TAGOH Date: Mon, 25 May 2015 21:41:05 +0900 Subject: [PATCH] Revert the previous change and just abort if the object id is overflowed. --- src/fcobjs.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/fcobjs.c b/src/fcobjs.c index 5e6b091..16ff31c 100644 --- a/src/fcobjs.c +++ b/src/fcobjs.c @@ -70,8 +70,6 @@ static FcObjectType * _FcObjectLookupOtherTypeByName (const char *str, FcObject *id) { struct FcObjectOtherTypeInfo *ots, *ot; - static fc_atomic_int_t first_id = 0; - static FcBool overflow = FcFalse; retry: ots = fc_atomic_ptr_get (&other_types); @@ -80,11 +78,6 @@ retry: if (0 == strcmp (ot->object.object, str)) break; - if (!ots) - { - first_id = fc_atomic_int_add (next_id, 0); - overflow = FcFalse; - } if (!ot) { ot = malloc (sizeof (*ot)); @@ -93,19 +86,12 @@ retry: ot->object.object = (char *) FcStrdup (str); ot->object.type = FcTypeUnknown; - retry_id: ot->id = fc_atomic_int_add (next_id, +1); - if (overflow && ot->id == first_id) + if (ot->id < (FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX)) { fprintf (stderr, "Fontconfig error: No object ID to assign\n"); abort (); } - if (ot->id < (FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX)) - { - overflow = FcTrue; - fc_atomic_ptr_cmpexch (&next_id, ot->id + 1, FC_MAX_BASE_OBJECT + FC_EXT_OBJ_INDEX + 1); - goto retry_id; - } ot->next = ots; if (!fc_atomic_ptr_cmpexch (&other_types, ots, ot)) {