diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-05-08 00:35:38 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-05-08 00:36:43 +0400 |
commit | d964bad67b37b64746d42ca01c03f4e404008dde (patch) | |
tree | aaa37f314d176739583bb938aeb0dae3bce6b702 /source/blender/blenkernel/intern/blender.c | |
parent | 65d54f34b13ddd815fdffad85b3e3e0ab542c0b1 (diff) |
Fix for crash when userprefs fails to read.
Diffstat (limited to 'source/blender/blenkernel/intern/blender.c')
-rw-r--r-- | source/blender/blenkernel/intern/blender.c | 26 |
1 files changed, 14 insertions, 12 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; } |