[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