Fix (unreported) Dynamic Paint modifier not increasing ID usercount in copy function.
*Sigh* One more example of why we should keep ID management handling in as few places as possible! It's impossible to keep more than a few places in sync regarding which ID pointer is refcounted etc.
This commit is contained in:
parent
e9aaf5ed21
commit
0d5c7e5e36
Notes:
blender-bot
2023-02-14 08:10:10 +01:00
Referenced by commit 5347aa40d5
, Fix compiler warnings from own recent rB0d5c7e5e36b9.
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "BKE_cdderivedmesh.h"
|
||||
#include "BKE_dynamicpaint.h"
|
||||
#include "BKE_library.h"
|
||||
#include "BKE_library_query.h"
|
||||
#include "BKE_modifier.h"
|
||||
|
||||
|
@ -58,6 +59,15 @@ static void copyData(ModifierData *md, ModifierData *target)
|
|||
DynamicPaintModifierData *tpmd = (DynamicPaintModifierData *)target;
|
||||
|
||||
dynamicPaint_Modifier_copy(pmd, tpmd);
|
||||
|
||||
if (tpmd->canvas) {
|
||||
for (DynamicPaintSurface *surface = tpmd->canvas->surfaces.first; surface; surface = surface->next) {
|
||||
id_us_plus(surface->init_texture);
|
||||
}
|
||||
}
|
||||
if (tpmd->brush) {
|
||||
id_us_plus(tpmd->brush->mat);
|
||||
}
|
||||
}
|
||||
|
||||
static void freeData(ModifierData *md)
|
||||
|
|
Loading…
Reference in New Issue