From e8d5e7c4bb11f7fcb0a4ba5c13f43e7929849a2f Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 15 Jun 2015 20:27:26 +0200 Subject: fontconfig libX11 libxcb xcb-proto mesa pixman xserver xkeyboard-config git update 15 June 2015 xserver commit fa12f2c150b2f50de9dac4a2b09265f13af353af libxcb commit f85661c3bca97faa72431df92a3867be39a74e23 libxcb/xcb-proto commit fef8a4cdc2cacd9541a656026371a3d338dadb8e xkeyboard-config commit 61fb58a95a071cc1c212f6d3808908c086219fe0 libX11 commit f0286b2770ece10aef5e2e8c004260217f12fd25 pixman commit eebc1b78200aff075dbcae9c8d00edad1f830d91 fontconfig commit f6d61c9beed856a925bd60c025b55284b2d88161 mesa commit 932d1613d1e15ec22555e5ec09105c49eb850e36 --- fontconfig/src/fcrange.c | 109 ++++++++--------------------------------------- 1 file changed, 18 insertions(+), 91 deletions(-) (limited to 'fontconfig/src/fcrange.c') diff --git a/fontconfig/src/fcrange.c b/fontconfig/src/fcrange.c index 9b1b67b82..f70226c55 100644 --- a/fontconfig/src/fcrange.c +++ b/fontconfig/src/fcrange.c @@ -32,10 +32,8 @@ FcRangeCreateDouble (double begin, double end) if (ret) { - ret->is_double = FcTrue; - ret->is_inclusive = FcDoubleCmpEQ (begin, end); - ret->u.d.begin = begin; - ret->u.d.end = end; + ret->begin = begin; + ret->end = end; } return ret; @@ -48,10 +46,8 @@ FcRangeCreateInteger (FcChar32 begin, FcChar32 end) if (ret) { - ret->is_double = FcFalse; - ret->is_inclusive = (begin == end); - ret->u.i.begin = begin; - ret->u.i.end = end; + ret->begin = begin; + ret->end = end; } return ret; @@ -66,14 +62,7 @@ FcRangeDestroy (FcRange *range) FcRange * FcRangeCopy (const FcRange *range) { - FcRange *ret; - - if (range->is_double) - ret = FcRangeCreateDouble (range->u.d.begin, range->u.d.end); - else - ret = FcRangeCreateInteger (range->u.i.begin, range->u.i.end); - - return ret; + return FcRangeCreateDouble (range->begin, range->end); } FcBool @@ -81,41 +70,14 @@ FcRangeGetDouble(const FcRange *range, double *begin, double *end) { if (!range) return FcFalse; - if (range->is_double) - { - if (begin) - *begin = range->u.d.begin; - if (end) - *end = range->u.d.end; - } - else - { - if (begin) - *begin = (double)range->u.i.begin; - if (end) - *end = (double)range->u.i.end; - } + if (begin) + *begin = range->begin; + if (end) + *end = range->end; return FcTrue; } -FcRange -FcRangeCanonicalize (const FcRange *range) -{ - FcRange new; - - if (range->is_double) - new = *range; - else - { - new.is_double = FcTrue; - new.is_inclusive = range->is_inclusive; - new.u.d.begin = (double)range->u.i.begin; - new.u.d.end = (double)range->u.i.end; - } - return new; -} - FcRange * FcRangePromote (double v, FcValuePromotionBuffer *vbuf) { @@ -125,50 +87,24 @@ FcRangePromote (double v, FcValuePromotionBuffer *vbuf) FcRangePromotionBuffer *buf = (FcRangePromotionBuffer *) vbuf; FC_ASSERT_STATIC (sizeof (FcRangePromotionBuffer) <= sizeof (FcValuePromotionBuffer)); - buf->r.is_double = FcTrue; - buf->r.is_inclusive = FcTrue; - buf->r.u.d.begin = v; - buf->r.u.d.end = v; + buf->r.begin = v; + buf->r.end = v; return &buf->r; } -FcBool -FcRangeIsZero (const FcRange *r) -{ - FcRange c; - - if (!r) - return FcFalse; - c = FcRangeCanonicalize (r); - - return FcDoubleIsZero (c.u.d.begin) && FcDoubleIsZero (c.u.d.end); -} - FcBool FcRangeIsInRange (const FcRange *a, const FcRange *b) { - FcRange ca, cb; - FcBool f; - if (!a || !b) return FcFalse; - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - if (ca.is_inclusive & cb.is_inclusive) - f = ca.u.d.end <= cb.u.d.end; - else - f = ca.u.d.end < cb.u.d.end; - - return FcDoubleCmpGE (ca.u.d.begin, cb.u.d.begin) && f; + return a->begin >= b->begin && a->end <= b->end; } FcBool FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) { - FcRange ca, cb; - switch ((int) op) { case FcOpEqual: case FcOpContains: @@ -178,21 +114,13 @@ FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) case FcOpNotContains: return !FcRangeIsInRange (a, b); case FcOpLess: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return ca.u.d.begin < cb.u.d.begin; + return a->begin < b->begin; case FcOpLessEqual: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return FcDoubleCmpLE (ca.u.d.begin, cb.u.d.begin); + return a->begin <= b->begin; case FcOpMore: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return ca.u.d.end > cb.u.d.end; + return a->end > b->end; case FcOpMoreEqual: - ca = FcRangeCanonicalize (a); - cb = FcRangeCanonicalize (b); - return FcDoubleCmpGE (ca.u.d.end, cb.u.d.end); + return a->end >= b->end; default: break; } @@ -202,9 +130,8 @@ FcRangeCompare (FcOp op, const FcRange *a, const FcRange *b) FcChar32 FcRangeHash (const FcRange *r) { - FcRange c = FcRangeCanonicalize (r); - int b = (int) (c.u.d.begin * 100); - int e = FcDoubleCmpEQ (c.u.d.end, DBL_MAX) ? INT_MAX : (int) (c.u.d.end * 100); + int b = (int) (r->begin * 100); + int e = (int) (r->end * 100); return b ^ (b << 1) ^ (e << 9); } -- cgit v1.2.3