summaryrefslogtreecommitdiff
path: root/src/fcobjs.c
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2015-05-25 21:41:05 +0900
committerAkira TAGOH <akira@tagoh.org>2015-05-25 21:41:05 +0900
commit4c9101f7044b68aa121557c796384e4bdf08f73f (patch)
tree352fb3d78eface4371a0472c74487a0d36e73ee6 /src/fcobjs.c
parent09edd84cf8e8bd1f6062c8803316327e662fdbda (diff)
downloadfontconfig-4c9101f7044b68aa121557c796384e4bdf08f73f.tar.gz
Revert the previous change
and just abort if the object id is overflowed.
Diffstat (limited to 'src/fcobjs.c')
-rw-r--r--src/fcobjs.c16
1 files changed, 1 insertions, 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)) {