diff options
author | Bastien Montagne <mont29> | 2022-09-05 16:46:00 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2022-09-05 17:12:54 +0300 |
commit | cd49fee741148dc9dcc0cbefce0b70ea0f2d55c6 (patch) | |
tree | e8dc62543d0706f127a4e80683ab18dc72ec0494 /source/blender/blenloader | |
parent | dd19d6456abf9ee230bcce62fd67f6ab7ab91f16 (diff) |
IDMAnagement: Add owner ID pointer to embedded ones.
Add a dedicated `owner_id` pointer to ID types that can be embedded
(Collections and NodeTrees), and modify slightly come code to make
handling those more safe and consistent.
This implements first part of T69169.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D15838
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 4 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_280.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index d178c8fcd4c..863f978daaf 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2052,7 +2052,7 @@ static void direct_link_id_embedded_id(BlendDataReader *reader, (ID *)*nodetree, id_old != NULL ? (ID *)ntreeFromID(id_old) : NULL, 0); - ntreeBlendReadData(reader, *nodetree); + ntreeBlendReadData(reader, id, *nodetree); } if (GS(id->name) == ID_SCE) { @@ -2064,7 +2064,7 @@ static void direct_link_id_embedded_id(BlendDataReader *reader, &scene->master_collection->id, id_old != NULL ? &((Scene *)id_old)->master_collection->id : NULL, 0); - BKE_collection_blend_read_data(reader, scene->master_collection); + BKE_collection_blend_read_data(reader, scene->master_collection, &scene->id); } } } diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index cd2132ddae9..c1ea96aaedc 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -367,7 +367,7 @@ static void do_version_scene_collection_to_collection(Main *bmain, Scene *scene) BLI_listbase_clear(&scene->view_layers); if (!scene->master_collection) { - scene->master_collection = BKE_collection_master_add(); + scene->master_collection = BKE_collection_master_add(scene); } /* Convert scene collections. */ @@ -411,7 +411,7 @@ static void do_version_layers_to_collections(Main *bmain, Scene *scene) /* Since we don't have access to FileData we check the (always valid) first * render layer instead. */ if (!scene->master_collection) { - scene->master_collection = BKE_collection_master_add(); + scene->master_collection = BKE_collection_master_add(scene); } if (scene->view_layers.first) { |