#define FC_BANK_FIRST 1
#define FC_BANK_LANGS 0xfcfcfcfc
+#define FC_MIN(a,b) ((a) < (b) ? (a) : (b))
+#define FC_MAX(a,b) ((a) > (b) ? (a) : (b))
+#define FC_ABS(a) ((a) < 0 ? -(a) : (a))
+
/* slim_internal.h */
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun)
#define FcPrivate __attribute__((__visibility__("hidden")))
} u;
} FcExpr;
+typedef struct _FcExprPage FcExprPage;
+
+struct _FcExprPage {
+ FcExprPage *next_page;
+ FcExpr *next;
+ FcExpr exprs[(1024 - 2/* two pointers */ - 2/* malloc overhead */) * sizeof (void *) / sizeof (FcExpr)];
+ FcExpr end[0];
+};
+
typedef enum _FcQual {
FcQualAny, FcQualAll, FcQualFirst, FcQualNotFirst
} FcQual;
#define FC_SERIALIZE_HASH_SIZE 8191
+typedef union _FcAlign {
+ double d;
+ int i;
+ intptr_t ip;
+ FcBool b;
+ void *p;
+} FcAlign;
+
typedef struct _FcSerializeBucket {
struct _FcSerializeBucket *next;
const void *object;
int rescanInterval; /* interval between scans */
int ref; /* reference count */
+
+ FcExprPage *expr_pool; /* pool of FcExpr's */
};
extern FcPrivate FcConfig *_fcConfig;
#ifdef _WIN32
FcPrivate int
-FcStat (const char *file, struct stat *statb)
+FcStat (const char *file, struct stat *statb);
#else
#define FcStat stat
#endif
/* fccfg.c */
+FcPrivate FcExpr *
+FcConfigAllocExpr (FcConfig *config);
+
FcPrivate FcBool
FcConfigAddConfigDir (FcConfig *config,
const FcChar8 *d);