]> git.wh0rd.org - fontconfig.git/blobdiff - src/fcstr.c
Fix a few memory tracking mistakes.
[fontconfig.git] / src / fcstr.c
index 1e7b4662fc8c49add3691dca0185586855505ad9..f56f823bc2f99a0c5600e60ad4cd9b62c3808767 100644 (file)
@@ -1025,11 +1025,14 @@ _FcStrSetAppend (FcStrSet *set, FcChar8 *s)
        if (!strs)
            return FcFalse;
        FcMemAlloc (FC_MEM_STRSET, (set->size + 2) * sizeof (FcChar8 *));
-       set->size = set->size + 1;
        if (set->num)
            memcpy (strs, set->strs, set->num * sizeof (FcChar8 *));
        if (set->strs)
+       {
+           FcMemFree (FC_MEM_STRSET, (set->size + 1) * sizeof (FcChar8 *));
            free (set->strs);
+       }
+       set->size = set->size + 1;
        set->strs = strs;
     }
     set->strs[set->num++] = s;
@@ -1118,9 +1121,11 @@ FcStrSetDestroy (FcStrSet *set)
     
        for (i = 0; i < set->num; i++)
            FcStrFree (set->strs[i]);
-       FcMemFree (FC_MEM_STRSET, (set->size) * sizeof (FcChar8 *));
        if (set->strs)
+       {
+           FcMemFree (FC_MEM_STRSET, (set->size + 1) * sizeof (FcChar8 *));
            free (set->strs);
+       }
        FcMemFree (FC_MEM_STRSET, sizeof (FcStrSet));
        free (set);
     }