diff options
author | Bastien Montagne <bastien@blender.org> | 2021-03-25 13:21:15 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2021-03-25 13:21:15 +0300 |
commit | 150e0553daff3c9bd6f1921fb1f91a41e4017d78 (patch) | |
tree | ef3d3c5c48fa363d403591a98b2d3b329ba0f773 /source/blender/blenloader | |
parent | 3b0531154e0d8cce16038fbe8b92e7cd05e3dc9f (diff) |
Fix T86853: Critical bug in write code of CacheFile ID.
CacheFile writing code would not write generic ID data (call for it has
been missing since the initial commit, rB61050f75b13e).
While potentially affecting other areas (mostly CustomProperties/IDProperties),
this was a critical failure for liboverrides. Also added some workaround
code to allow opening broken files (though the override of the CacheFile
data-block will be lost).
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f97f6f65551..b657cb8b2f9 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2497,9 +2497,12 @@ static void direct_link_id_common( /* Link direct data of overrides. */ if (id->override_library) { BLO_read_data_address(reader, &id->override_library); - BLO_read_list_cb( - reader, &id->override_library->properties, direct_link_id_override_property_cb); - id->override_library->runtime = NULL; + /* Work around file corruption on writing, see T86853. */ + if (id->override_library != NULL) { + BLO_read_list_cb( + reader, &id->override_library->properties, direct_link_id_override_property_cb); + id->override_library->runtime = NULL; + } } DrawDataList *drawdata = DRW_drawdatalist_from_id(id); |