Fix (unreported) datatransfer code could still modify source mesh in some cases.
authorBastien Montagne <montagne29@wanadoo.fr>
Fri, 8 Mar 2019 10:49:49 +0000 (11:49 +0100)
committerBastien Montagne <montagne29@wanadoo.fr>
Fri, 8 Mar 2019 16:53:31 +0000 (17:53 +0100)
commit8730984c708bdde6a2cf29fc4f29bd50c05b349c
treef3bf8b462ed4c42cd928fbace84efebe3be076e4
parentcdba2bc0fce86e814aaa5a969a018b5c1c9f8b3b
Fix (unreported) datatransfer code could still modify source mesh in some cases.

Source (i.e. other) mesh should not be modified in any case in modifier
evaluation case (this is forbidden by design and can lead to all kind of
threaded locks and crashes), and doing so even in operator case was
never a good idea either.

Now that we can specifically request needed data (poly and/or loop
normals) from evaluation code, we can finally get rid of those
computations inside data transfer/mesh remapping area.

This is hopefully the last remaining bit of this 'bad crashing code' in
datatransfer area.
source/blender/blenkernel/intern/data_transfer.c
source/blender/blenkernel/intern/mesh_remap.c
source/blender/modifiers/intern/MOD_datatransfer.c