Fix for crash when userprefs fails to read.

This commit is contained in:
Campbell Barton 2014-05-08 06:35:38 +10:00
parent 65d54f34b1
commit d964bad67b
2 changed files with 15 additions and 13 deletions

View File

@ -500,20 +500,22 @@ int BKE_read_file_from_memfile(bContext *C, MemFile *memfile, ReportList *report
int BKE_read_file_userdef(const char *filepath, ReportList *reports)
{
BlendFileData *bfd;
int retval = 0;
int retval = BKE_READ_FILE_FAIL;
bfd = BLO_read_from_file(filepath, reports);
if (bfd->user) {
retval = BKE_READ_FILE_OK_USERPREFS;
/* only here free userdef themes... */
BKE_userdef_free();
U = *bfd->user;
MEM_freeN(bfd->user);
if (bfd) {
if (bfd->user) {
retval = BKE_READ_FILE_OK_USERPREFS;
/* only here free userdef themes... */
BKE_userdef_free();
U = *bfd->user;
MEM_freeN(bfd->user);
}
BKE_main_free(bfd->main);
MEM_freeN(bfd);
}
BKE_main_free(bfd->main);
MEM_freeN(bfd);
return retval;
}

View File

@ -603,7 +603,7 @@ int wm_homefile_read(bContext *C, ReportList *reports, bool from_memory, const c
/* check new prefs only after startup.blend was finished */
if (!from_memory && BLI_exists(prefstr)) {
int done = BKE_read_file_userdef(prefstr, NULL);
if (done) {
if (done != BKE_READ_FILE_FAIL) {
read_userdef_from_memory = false;
printf("Read new prefs: %s\n", prefstr);
}