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
diff options
context:
space:
mode:
authorBastien Montagne <bastien@blender.org>2021-03-23 17:59:21 +0300
committerBastien Montagne <bastien@blender.org>2021-03-23 18:03:12 +0300
commit29c0b34b209e4fa0548a1ff0716751f1fcfb51d5 (patch)
treee93e95247ad971c3b57a6209541673b08469685b /source/blender/blenkernel/intern/object.c
parent9f19d01e3ccbcce819e8115182b3522c904f8bf4 (diff)
Fix (unreported) object duplicate code wrongly duplicating linked objects.
Linked data should only be duplicated if relevant `eDupli_ID_Flags` flag is set (`USER_DUP_LINKED_ID`), this is being taken care of by generic `BKE_id_copy_for_duplicate` function, but for some reasons (?) `BKE_object_duplicate` was directly using `BKE_id_copy` for itself... Note that this had especially bad consequences when duplicating overrides of collections...
Diffstat (limited to 'source/blender/blenkernel/intern/object.c')
-rw-r--r--source/blender/blenkernel/intern/object.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 76c96ec9603..00e99f193a2 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -2620,11 +2620,7 @@ Object *BKE_object_duplicate(Main *bmain,
Material ***matarar;
- Object *obn = (Object *)BKE_id_copy(bmain, &ob->id);
- id_us_min(&obn->id);
- if (is_subprocess) {
- ID_NEW_SET(ob, obn);
- }
+ Object *obn = (Object *)BKE_id_copy_for_duplicate(bmain, &ob->id, dupflag);
/* 0 == full linked. */
if (dupflag == 0) {