diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2010-07-10 15:47:12 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2010-07-11 09:43:55 -0400 |
commit | f18bcf1f6e984c33dca30ad1ce03c58628fe39df (patch) | |
tree | 41e6da38dc6f5a646e27939d41cf11f8b62f1552 | |
parent | 5c935473d8a193b3510f8605a6658ea6ac998fd1 (diff) |
Hide the global implementation variable behind a force_inline function.
Previously the global variable was called 'imp' which was confusing
with the argument to various other functions also being called imp.
-rw-r--r-- | pixman/pixman.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/pixman/pixman.c b/pixman/pixman.c index 56c95368..b76143f3 100644 --- a/pixman/pixman.c +++ b/pixman/pixman.c @@ -30,7 +30,16 @@ #include <stdlib.h> -static pixman_implementation_t *imp; +static force_inline pixman_implementation_t * +get_implementation (void) +{ + static pixman_implementation_t *global_implementation; + + if (!global_implementation) + global_implementation = _pixman_choose_implementation (); + + return global_implementation; +} typedef struct operator_info_t operator_info_t; @@ -813,10 +822,7 @@ pixman_image_composite32 (pixman_op_t op, _pixman_image_validate (mask); _pixman_image_validate (dest); - if (!imp) - imp = _pixman_choose_implementation (); - - do_composite (imp, op, + do_composite (get_implementation(), op, src, mask, dest, src_x, src_y, mask_x, mask_y, @@ -838,10 +844,8 @@ pixman_blt (uint32_t *src_bits, int width, int height) { - if (!imp) - imp = _pixman_choose_implementation (); - - return _pixman_implementation_blt (imp, src_bits, dst_bits, src_stride, dst_stride, + return _pixman_implementation_blt (get_implementation(), + src_bits, dst_bits, src_stride, dst_stride, src_bpp, dst_bpp, src_x, src_y, dst_x, dst_y, @@ -858,10 +862,8 @@ pixman_fill (uint32_t *bits, int height, uint32_t xor) { - if (!imp) - imp = _pixman_choose_implementation (); - - return _pixman_implementation_fill (imp, bits, stride, bpp, x, y, width, height, xor); + return _pixman_implementation_fill ( + get_implementation(), bits, stride, bpp, x, y, width, height, xor); } static uint32_t |