goto bail4;
FcConfigCreate (void){    FcSetName	set;    FcConfig	*config;    config = malloc (sizeof (FcConfig));    if (!config)	goto bail0;    FcMemAlloc (FC_MEM_CONFIG, sizeof (FcConfig));        config->configDirs = FcStrSetCreate ();    if (!config->configDirs)	goto bail1;        config->configFiles = FcStrSetCreate ();    if (!config->configFiles)	goto bail2;        config->fontDirs = FcStrSetCreate ();    if (!config->fontDirs)	goto bail3;        config->cache = 0;    if (!FcConfigSetCache (config, (FcChar8 *) ("~/" FC_USER_CACHE_FILE)))	goto bail4;    config->blanks = 0;    config->substPattern = 0;    config->substFont = 0;    config->maxObjects = 0;    for (set = FcSetSystem; set <= FcSetApplication; set++)	config->fonts[set] = 0;    config->rescanTime = time(0);    config->rescanInterval = 30;            return config;bail4:    FcStrSetDestroy (config->fontDirs);bail3:    FcStrSetDestroy (config->configFiles);bail2:    FcStrSetDestroy (config->configDirs);bail1:    free (config);    FcMemFree (FC_MEM_CONFIG, sizeof (FcConfig));bail0:    return 0;}