[Fontconfig] [PATCH 2/2] Deal with architectures where ALIGNOF_DOUBLE < 4

Akira TAGOH akira at tagoh.org
Tue May 1 20:05:45 PDT 2012


That looks good to me. thanks!

On Wed, May 2, 2012 at 11:28 AM, Keith Packard <keithp at keithp.com> wrote:
> This patch isn't really tested as I don't have such a machine, but I
> have a bug report that on m68k machines, double values are aligned on
> smaller than 4 byte boundaries. If ALIGNOF_DOUBLE < sizeof(int),
> the "expected" sizeof of FcValue is miscomputed. Use the maximum of 4
> (sizeof (int)) and ALIGNOF_DOUBLE when computing the expected size of
> FcValue.
>
> Signed-off-by: Keith Packard <keithp at keithp.com>
> ---
>  src/fcarch.c |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/fcarch.c b/src/fcarch.c
> index 09d24b3..5fe7d97 100644
> --- a/src/fcarch.c
> +++ b/src/fcarch.c
> @@ -56,7 +56,9 @@ FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcStrSet *));
>  FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcCharLeaf **));
>  FC_ASSERT_STATIC (SIZEOF_VOID_P == sizeof (FcChar16 *));
>
> -FC_ASSERT_STATIC (0x08 + 1*ALIGNOF_DOUBLE == sizeof (FcValue));
> +#define FC_MAX(a,b)    ((a) > (b) ? (a) : (b))
> +
> +FC_ASSERT_STATIC (0x08 + 1*FC_MAX(4,ALIGNOF_DOUBLE) == sizeof (FcValue));
>  FC_ASSERT_STATIC (0x00 + 2*SIZEOF_VOID_P == sizeof (FcPatternElt));
>  FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcPattern));
>  FC_ASSERT_STATIC (0x08 + 2*SIZEOF_VOID_P == sizeof (FcCharSet));
> --
> 1.7.10
>



-- 
Akira TAGOH


More information about the Fontconfig mailing list