- return _FcUserObjectNames[-si].object;
-}
-
-int
-FcObjectNeededBytes ()
-{
- int num = 0, i;
- for (i = 0; i < biggest_known_ntypes; i++)
- {
- const char * t = biggest_known_types[i].object;
- num = num + strlen(t) + 1;
- }
- biggest_known_count = num;
- return num + sizeof(int);
-}
-
-int
-FcObjectNeededBytesAlign (void)
-{
- return fc_alignof (int) + fc_alignof (char);
-}
-
-void *
-FcObjectDistributeBytes (FcCache * metadata, void * block_ptr)
-{
- block_ptr = ALIGN (block_ptr, int);
- *(int *)block_ptr = biggest_known_ntypes;
- block_ptr = (int *) block_ptr + 1;
- block_ptr = ALIGN (block_ptr, char);
- biggest_ptr = block_ptr;
- block_ptr = (char *) block_ptr + biggest_known_count;
- return block_ptr;
-}
-
-void
-FcObjectSerialize (void)
-{
- int i;
- for (i = 0; i < biggest_known_ntypes; i++)
- {
- const char * t = biggest_known_types[i].object;
- strcpy (biggest_ptr, t);
- biggest_ptr = biggest_ptr + strlen(t) + 1;
- }
-}
-
-void *
-FcObjectUnserialize (FcCache * metadata, void *block_ptr)
-{
- int new_biggest;
- block_ptr = ALIGN (block_ptr, int);
- new_biggest = *(int *)block_ptr;
- block_ptr = (int *) block_ptr + 1;
- if (biggest_known_ntypes < new_biggest)
- {
- int i;
- char * bp = (char *)block_ptr;
- FcObjectType * bn;
-
- bn = malloc (sizeof (const FcObjectType) * (new_biggest + 1));
- if (!bn)
- return 0;
-
- for (i = 0; i < new_biggest; i++)
- {
- const FcObjectType * t = FcNameGetObjectType(bp);
- if (t)
- bn[i].type = t->type;
- else
- bn[i].type = FcTypeVoid;
- bn[i].object = bp;
- bp = bp + strlen(bp) + 1;
- }
-
- FcNameUnregisterObjectTypesFree (biggest_known_types, biggest_known_ntypes, FcFalse);
- if (allocated_biggest_known_types)
- {
- free ((FcObjectTypeList *)biggest_known_types);
- }
- else
- allocated_biggest_known_types = FcTrue;
-
- FcNameRegisterObjectTypes (bn, new_biggest);
- biggest_known_ntypes = new_biggest;
- biggest_known_types = (const FcObjectType *)bn;
- }
- block_ptr = ALIGN (block_ptr, char);
- block_ptr = (char *) block_ptr + biggest_known_count;
- return block_ptr;