diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-07-12 05:23:48 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-07-12 05:28:06 +0300 |
commit | 4db1db327a0613abee950ffe12b013afdec2c111 (patch) | |
tree | 2655c39b4ad6478e02f89d9361309e5ddc10ef97 /source/blender/makesrna/intern/rna_define.c | |
parent | 0b3183d13cdbdcb06317fd1dd9b04ccd93a767c1 (diff) |
readfile: report SDNA decoding errors on file read
This was printed to the stdout, however the error case wasn't checked or well supported.
Also, errors decoding SDNA would sometimes call exit(1).
Diffstat (limited to 'source/blender/makesrna/intern/rna_define.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_define.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index bf2b091576e..7ff4eaea169 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -531,12 +531,18 @@ BlenderRNA *RNA_create(void) BlenderRNA *brna; brna = MEM_callocN(sizeof(BlenderRNA), "BlenderRNA"); + const char *error_message = NULL; - DefRNA.sdna = DNA_sdna_from_data(DNAstr, DNAlen, false, false); BLI_listbase_clear(&DefRNA.structs); DefRNA.error = 0; DefRNA.preprocess = 1; + DefRNA.sdna = DNA_sdna_from_data(DNAstr, DNAlen, false, false, &error_message); + if (DefRNA.sdna == NULL) { + fprintf(stderr, "Error decoding SDNA: %s\n", error_message); + DefRNA.error = 1; + } + return brna; } |