Accept NULL in for spacing in FcFreeTypeCharSetAndSpacing()
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index a6e7058..418b7c8 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -2140,8 +2140,8 @@
FcCharSet *fcs;
int o;
FT_Int load_flags = FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
- FT_Pos advances[3];
- unsigned int num_advances = 0;
+ FT_Pos advances[3] = {};
+ unsigned int num_advances = spacing ? 0 : 3;
fcs = FcCharSetCreate ();
if (!fcs)
@@ -2265,14 +2265,19 @@
#endif
break;
}
- if (num_advances <= 1)
- *spacing = FC_MONO;
- else if (num_advances == 2 &&
- fc_approximately_equal (fc_min (advances[0], advances[1]) * 2,
- fc_max (advances[0], advances[1])))
- *spacing = FC_DUAL;
- else
- *spacing = FC_PROPORTIONAL;
+
+ if (spacing)
+ {
+ if (num_advances <= 1)
+ *spacing = FC_MONO;
+ else if (num_advances == 2 &&
+ fc_approximately_equal (fc_min (advances[0], advances[1]) * 2,
+ fc_max (advances[0], advances[1])))
+ *spacing = FC_DUAL;
+ else
+ *spacing = FC_PROPORTIONAL;
+ }
+
return fcs;
bail1:
FcCharSetDestroy (fcs);
@@ -2283,9 +2288,7 @@
FcCharSet *
FcFreeTypeCharSet (FT_Face face, FcBlanks *blanks FC_UNUSED)
{
- int spacing;
-
- return FcFreeTypeCharSetAndSpacing (face, blanks, &spacing);
+ return FcFreeTypeCharSetAndSpacing (face, blanks, NULL);
}