[Pixman] [PATCH] Hide the global implementation variable behind a force_inline function.
Søren Sandmann Pedersen
sandmann at daimi.au.dk
Sat Jul 10 21:03:18 PDT 2010
From: Søren Sandmann Pedersen <ssp at redhat.com>
Previously the global variable was called 'imp' which was confusing
with the argument to various other functions also being called imp.
---
pixman/pixman.c | 28 +++++++++++++++-------------
1 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/pixman/pixman.c b/pixman/pixman.c
index 56c9536..b76143f 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
--
1.6.0.6
More information about the Pixman
mailing list