Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-05-08 00:35:38 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-05-08 00:36:43 +0400
commitd964bad67b37b64746d42ca01c03f4e404008dde (patch)
treeaaa37f314d176739583bb938aeb0dae3bce6b702 /source
parent65d54f34b13ddd815fdffad85b3e3e0ab542c0b1 (diff)
Fix for crash when userprefs fails to read.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/blender.c26
-rw-r--r--source/blender/windowmanager/intern/wm_files.c2
2 files changed, 15 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index 3d323db2623..8b87f5b0cea 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -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;
}
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 997bb12d711..1ec2e6a3ee0 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -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);
}