Don't use FcCharSetCopy in FcCharSetMerge
The Copy function is actually a ref, not real copy.
This commit is contained in:
parent
d230cf144f
commit
25a09eb9bf
|
@ -104,7 +104,7 @@ Returns a set including only those chars found in <parameter>a</parameter> but n
|
||||||
@TYPE2@ const FcCharSet * @ARG2@ b
|
@TYPE2@ const FcCharSet * @ARG2@ b
|
||||||
@PURPOSE@ Merge charsets
|
@PURPOSE@ Merge charsets
|
||||||
@DESC@
|
@DESC@
|
||||||
If <parameter>a</parameter> is NULL, returns a copy of <parameter>b</parameter>.
|
If <parameter>a</parameter> is NULL, returns a newly-created copy of <parameter>b</parameter>.
|
||||||
If <parameter>a</parameter> is an FcCharSet object owned by fontconfig that
|
If <parameter>a</parameter> is an FcCharSet object owned by fontconfig that
|
||||||
cannot be modified, it returns the union of <parameter>a</parameter> and
|
cannot be modified, it returns the union of <parameter>a</parameter> and
|
||||||
<parameter>b</parameter> in a newly-created FcCharSet object.
|
<parameter>b</parameter> in a newly-created FcCharSet object.
|
||||||
|
|
|
@ -459,14 +459,15 @@ FcCharSetMerge (FcCharSet *a, const FcCharSet *b)
|
||||||
FcCharSetIter ai, bi;
|
FcCharSetIter ai, bi;
|
||||||
|
|
||||||
if (a == NULL) {
|
if (a == NULL) {
|
||||||
return FcCharSetCopy ((FcCharSet *) b);
|
fcs = a = FcCharSetCreate ();
|
||||||
} else if (a->ref == FC_REF_CONSTANT) {
|
} else if (a->ref == FC_REF_CONSTANT) {
|
||||||
fcs = FcCharSetCreate ();
|
fcs = FcCharSetCreate ();
|
||||||
if (fcs == NULL)
|
|
||||||
return NULL;
|
|
||||||
} else
|
} else
|
||||||
fcs = a;
|
fcs = a;
|
||||||
|
|
||||||
|
if (fcs == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
FcCharSetIterStart (a, &ai);
|
FcCharSetIterStart (a, &ai);
|
||||||
FcCharSetIterStart (b, &bi);
|
FcCharSetIterStart (b, &bi);
|
||||||
while (ai.leaf || bi.leaf)
|
while (ai.leaf || bi.leaf)
|
||||||
|
|
Loading…
Reference in New Issue