Fix use of uninitialized fields reported by valgrind

In pixman-noop.c and pixman-sse2.c, we are accessing
image->bits.width/height without first making sure the image is a bits
image. The warning is harmless because we never act on this
information without checking that the image is a8r8g8b8, but valgrind
does warn about it.

In pixman-noop.c, just reorder the clauses in the if statement; in
pixman-sse2.c require images to have the FAST_PATH_BITS_IMAGE flag
set.
Pre-release version bump to 0.23.8
Post-release version bump to 0.23.9
Add definitions of INT64_MIN and INT64_MAX
Change MMX ldq_u to return _m64 instead of forcing all callers to cast

Sun/Oracle Studio compilers allow the pointers to be cast, but not the
non-pointer forms, causing pixman compiles to fail with many errors of:
"pixman-mmx.c", line 1411: invalid cast expression

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Pre-release version bump to 0.24.0
Post-release version bump to 0.25.1
Remove useless checks for NULL before freeing

This patch has been generated by the following Coccinelle semantic patch:

// Remove useless checks for NULL before freeing
//
// free (NULL) is a no-op, so there is no need to avoid it

@@
expression E;
@@
+ free (E);
+ E = NULL;
- if (unlikely (E != NULL)) {
-   free(E);
(
-   E = NULL;
|
-   E = 0;
)
   ...
- }

@@
expression E;
@@
+ free (E);
- if (unlikely (E != NULL)) {
-   free (E);
- }
test: Cleanup includes

All the tests are linked to libutil, hence it makes sence to always
include utils.h and reuse what it provides (config.h inclusion, access
to private pixman APIs, ARRAY_LENGTH, ...).
Use the ARRAY_LENGTH() macro when possible

This patch has been generated by the following Coccinelle semantic patch:

// Use the ARRAY_LENGTH() macro when possible
//
// Replace open-coded array length computations with the
// ARRAY_LENGTH() macro

@@
type T;
T[] E;
@@
- (sizeof(E)/sizeof(T))
+ ARRAY_LENGTH (E)
test: Reuse the ARRAY_LENGTH() macro

It is provided by utils.h, there is no need to redefine it.
demos: Consistently use G_N_ELEMENTS()

Instead of open-coding G_N_ELEMENTS(), just use it.
test: Produce autotools-looking report in the win32 build system

Tweak the commands used to run the tests on win32 to make the output
look mostly like that produced by the autotools test system.

In addition to this, make sure that the exit status of the test target
is success (0) if and only if no failure occurred.
Don't use non-POSIX test

test "$test_CFLAGS" == "" &&         \

may cause an error on some POSIX shells and uses a style which is not
consistent with the other tests in configure.ac

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=42588 and
https://bugs.gentoo.org/show_bug.cgi?id=387087
Android Runtime Detection Support For ARM NEON

This patch adds runtime detection support for the ARM NEON fast paths
for code compiled with the Android NDK. This is the only code change
needed to enable the ARM NEON pixman fast paths for the ever growing
Android platform (200 million+ smartphones, tablets, etc.). Just make
sure to #define USE_ARM_NEON in your makefile.
region: Add pixman_region{,32}_clear() functions.

These functions simply reset the region to empty. They are equivalent
to

      pixman_region_fini (&region);
      pixman_region_init (&region);
Modify gradient-test to show a bug in NONE processing

This patch modifies demos/gradient-test to display a bug in gradients
with a repeat mode of NONE. With the current gradient code, the left
side will be a solid red (actually an extremely long fade from solid
red to transparent) instead of a sharp transition from red to green.
gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0

ec7c9c2b6865b48b8bd14e4 introduced a bug where NONE gradients would be
misrendered, causing the area outside the gradient to be treated as a
(very) long fade to transparent.The problem was that a check for
positions outside the gradients were dropped in favor of relying on
the sentinels.

Aside from misrendering, this also caused a signed integer overflow
when the code would compute a stepper size based on MIN_INT32.

This patches fixes the issue by reinstating a check for these cases
and setting both the right and left colors to transparent black.
autogen.sh: Support GNOME Build API

http://people.gnome.org/~walters/docs/build-api.txt
pixman-image.c: Fix typo in pixman_image_set_transform()

A parenthesis was misplaced so that the size argument to memcmp() was
always 0. The bug is harmless except that the flags might be
unnecessarily recomputed in some cases.

A bug reporting this in Mozilla's fork was discovered here:

    https://bugzilla.mozilla.org/show_bug.cgi?id=710992