Fix T87703: Failed assert when dragging object data-block into 3D View

Talked with Bastien and we ended up looking into this. Issue is that the
dupliation through drag & drop should also be considered a
"sub-process", like Shift+D duplicating does. Added a comment explaining
why this is needed.
This commit is contained in:
Julian Eisel 2021-06-08 16:36:42 +02:00 • committed by Bastien Montagne
parent 0930a70e81
commit d56d5bfafc

View file

@ -3448,7 +3448,17 @@ static int object_add_named_exec(bContext *C, wmOperator *op)
}
/* prepare dupli */
basen = object_add_duplicate_internal(bmain, scene, view_layer, ob, dupflag, 0);
basen = object_add_duplicate_internal(
bmain,
scene,
view_layer,
ob,
dupflag,
/* Sub-process flag because the new-ID remapping (#BKE_libblock_relink_to_newid()) in this
* function will only work if the object is already linked in the view layer, which is not
* the case here. So we have to do the new-ID relinking ourselves (#copy_object_set_idnew()).
*/
LIB_ID_DUPLICATE_IS_SUBPROCESS);
if (basen == NULL) {
BKE_report(op->reports, RPT_ERROR, "Object could not be duplicated");