* PERFORMANCE OF THIS SOFTWARE.
*/
-#include <stdlib.h>
#include "fcint.h"
+#include <stdlib.h>
FcFontSet *
FcFontSetCreate (void)
}
FcBool
-FcFontSetPrepareSerialize (FcFontSet *s)
+FcFontSetSerializeAlloc (FcSerialize *serialize, const FcFontSet *s)
{
int i;
-
+
+ if (!FcSerializeAlloc (serialize, s, sizeof (FcFontSet)))
+ return FcFalse;
+ if (!FcSerializeAlloc (serialize, s->fonts, s->nfont * sizeof (FcPattern *)))
+ return FcFalse;
for (i = 0; i < s->nfont; i++)
- if (!FcPatternPrepareSerialize(s->fonts[i]))
+ {
+ if (!FcPatternSerializeAlloc (serialize, s->fonts[i]))
return FcFalse;
-
+ }
return FcTrue;
}
-FcBool
-FcFontSetSerialize (FcFontSet * s)
+FcFontSet *
+FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s)
{
- int i;
- FcPattern * p;
+ int i;
+ FcFontSet *s_serialize;
+ FcPattern **fonts_serialize;
+ FcPattern *p_serialize;
+
+ s_serialize = FcSerializePtr (serialize, s);
+ if (!s_serialize)
+ return NULL;
+ *s_serialize = *s;
+ s_serialize->sfont = s_serialize->nfont;
+
+ fonts_serialize = FcSerializePtr (serialize, s->fonts);
+ if (!fonts_serialize)
+ return NULL;
+ s_serialize->fonts = FcPtrToEncodedOffset (s_serialize,
+ fonts_serialize, FcPattern *);
for (i = 0; i < s->nfont; i++)
{
- p = FcPatternSerialize (s->fonts[i]);
- if (!p) return FcFalse;
- FcPatternDestroy (s->fonts[i]);
-
- s->fonts[i] = p;
+ p_serialize = FcPatternSerialize (serialize, s->fonts[i]);
+ if (!p_serialize)
+ return NULL;
+ fonts_serialize[i] = FcPtrToEncodedOffset (s_serialize,
+ p_serialize,
+ FcPattern);
}
- return FcTrue;
-}
-
-void
-FcFontSetClearStatic (void)
-{
- FcPatternClearStatic();
+ return s_serialize;
}
+#define __fcfs__
+#include "fcaliastail.h"
+#undef __fcfs__