summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2009-06-05 16:49:07 -0400
committerBehdad Esfahbod <behdad@behdad.org>2009-06-24 13:52:11 -0400
commitefe5eae26b2443363b1000b3197d1731a40f8af9 (patch)
treebb41247a877a44f51f4de8221164cb36283c987a
parent8ea654b2aa6b4e97b369e299325da49807559511 (diff)
Simplify FcValueSave() semantics
-rw-r--r--src/fccfg.c3
-rw-r--r--src/fcpat.c12
2 files changed, 4 insertions, 11 deletions
diff --git a/src/fccfg.c b/src/fccfg.c
index da13f8c6..95c50162 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -852,7 +852,8 @@ FcConfigEvaluate (FcPattern *p, FcExpr *e)
break;
case FcOpString:
v.type = FcTypeString;
- v.u.s = FcStrStaticName(e->u.sval);
+ v.u.s = e->u.sval;
+ v = FcValueSave (v);
break;
case FcOpMatrix:
v.type = FcTypeMatrix;
diff --git a/src/fcpat.c b/src/fcpat.c
index 188f560b..792a164f 100644
--- a/src/fcpat.c
+++ b/src/fcpat.c
@@ -98,7 +98,7 @@ FcValueSave (FcValue v)
{
switch (v.type) {
case FcTypeString:
- v.u.s = FcStrCopy (v.u.s);
+ v.u.s = FcStrStaticName (v.u.s);
if (!v.u.s)
v.type = FcTypeVoid;
break;
@@ -482,15 +482,7 @@ FcPatternObjectAddWithBinding (FcPattern *p,
memset(new, 0, sizeof (FcValueList));
FcMemAlloc (FC_MEM_VALLIST, sizeof (FcValueList));
- /* dup string */
- if (value.type == FcTypeString)
- {
- value.u.s = FcStrStaticName (value.u.s);
- if (!value.u.s)
- value.type = FcTypeVoid;
- }
- else
- value = FcValueSave (value);
+ value = FcValueSave (value);
if (value.type == FcTypeVoid)
goto bail1;