[Fontconfig] [PATCH 2/2] Use const more often

Akira TAGOH akira at tagoh.org
Mon Apr 16 19:50:45 PDT 2012


On Tue, Apr 17, 2012 at 3:28 AM, Keith Packard <keithp at keithp.com> wrote:
> diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c
> index 51717f9..d29dc10 100644
> --- a/fc-lang/fc-lang.c
> +++ b/fc-lang/fc-lang.c
> @@ -136,7 +136,7 @@ static FcCharSet *
>  scan (FILE *f, char *file, FcCharSetFreezer *freezer)
>  {
>     FcCharSet      *c = 0;
> -    FcCharSet      *n;
> +    const FcCharSet *n;
>     FcBool         del;
>     int                    start, end, ucs4;
>     char           buf[1024];
> @@ -164,7 +164,7 @@ scan (FILE *f, char *file, FcCharSetFreezer *freezer)
>                c = FcCharSetCreate ();
>            if (!FcCharSetMerge (c, n, NULL))
>                fatal (file, lineno, "out of memory");
> -           FcCharSetDestroy (n);
> +           FcCharSetDestroy ((FcCharSet *) n);
>            continue;
>        }
>        del = FcFalse;

Ah, this is tricky.. I guess that may be better add a comment "n" is
FC_REF_CONSTANT? also we should add "const" to the return value of
FcCharSetFreezeBase() too.

> diff --git a/src/fccache.c b/src/fccache.c
> index a72dbb6..5ed7edf 100644
> --- a/src/fccache.c
> +++ b/src/fccache.c
> @@ -1000,7 +1000,7 @@ FcDirCacheWrite (FcCache *cache, FcConfig *config)
>      */
>     if (cache->size < FC_CACHE_MIN_MMAP &&
>        (skip = FcCacheFindByAddr (cache)) &&
> -       FcStat (cache_hashed, &cache_stat))
> +       FcStat ((const char *) cache_hashed, &cache_stat))

We don't need this one anymore. FcStat() takes const FcChar8 * now by 647569d0.

> @@ -913,7 +913,7 @@ FcConfigEvaluate (FcPattern *p, FcExpr *e)
>        v = FcValueSave (v);
>        break;
>     case FcOpConst:
> -       if (FcNameConstant (e->u.constant, &v.u.i))
> +       if (FcNameConstant ((FcChar8 *) e->u.constant, &v.u.i))
>            v.type = FcTypeInteger;
>        else
>            v.type = FcTypeVoid;

This one too by 123d344f

> diff --git a/src/fcint.h b/src/fcint.h
> index 8179195..fd327de 100644
> --- a/src/fcint.h
> +++ b/src/fcint.h
> @@ -237,17 +237,17 @@ typedef enum _FcOp {
>  typedef struct _FcExpr {
>     FcOp   op;
>     union {
> -       int         ival;
> -       double      dval;
> -       const FcChar8       *sval;
> -       FcMatrix    *mval;
> -       FcBool      bval;
> -       FcCharSet   *cval;
> -       FcLangSet   *lval;
> -       FcObject    object;
> -       const FcChar8       *constant;
> +       int             ival;
> +       double          dval;
> +       const FcChar8   *sval;
> +       const FcMatrix  *mval;
> +       FcBool          bval;
> +       const FcCharSet *cval;
> +       FcLangSet       *lval;
> +       FcObject        object;
> +       const FcChar8   *constant;
>        struct {
> -           struct _FcExpr *left, *right;
> +           const struct _FcExpr *left, *right;
>        } tree;
>     } u;
>  } FcExpr;

I'm not sure what this change tries to address. FcMatrix is created by
FcExprCreateMatrix() only here and it's surely allocated by malloc()
in FcMatrixCopy(). also FcCharSet is came from FcParseCharSet() and
FcCharSetCreate(). I don't see any reason why you add a const there.

> @@ -261,7 +261,7 @@ FcExprDestroy (FcExpr *e)
>        break;
>     }
>
> -    e->op = FcOpNil;
> +    ((FcExpr *) e)->op = FcOpNil;
>  }
>
>  void

just wonder what we get better with this dirty hack... ?

-- 
Akira TAGOH


More information about the Fontconfig mailing list