ft_create_default_module_classes( FT_Library library ) { FT_Error error; FT_Memory memory; FT_Module_Class* *classes; FT_Module_Class* clazz; FT_UInt i; BasePIC* pic_container = (BasePIC*)library->pic_container.base; memory = library->memory; pic_container->default_module_classes = 0; if ( FT_ALLOC( classes, sizeof ( FT_Module_Class* ) * ( FT_NUM_MODULE_CLASSES + 1 ) ) ) return error; /* initialize all pointers to 0, especially the last one */ for ( i = 0; i < FT_NUM_MODULE_CLASSES; i++ ) classes[i] = 0; classes[FT_NUM_MODULE_CLASSES] = 0; i = 0; #include FT_CONFIG_MODULES_H Exit: if ( error ) ft_destroy_default_module_classes( library ); else pic_container->default_module_classes = classes; return error; }
void ft_base_pic_free( FT_Library library ) { FT_PIC_Container* pic_container = &library->pic_container; FT_Memory memory = library->memory; if ( pic_container->base ) { /* destroy default module classes */ /* (in case FT_Add_Default_Modules was used) */ ft_destroy_default_module_classes( library ); FT_FREE( pic_container->base ); pic_container->base = NULL; } }