Fix for crash when userprefs fails to read.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user