Fix (unreported) bloody modifiers messing with ID user count in copy.
User count of IDs is handled by higher-level, generic function, low-level copydata functions *MUST NOT* touch them anymore, ever!
This commit is contained in:
parent
3740f7593d
commit
43e0e8defa
|
@ -60,15 +60,6 @@ static void copyData(const 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((ID *)surface->init_texture);
|
||||
}
|
||||
}
|
||||
if (tpmd->brush) {
|
||||
id_us_plus((ID *)tpmd->brush->mat);
|
||||
}
|
||||
}
|
||||
|
||||
static void freeData(ModifierData *md)
|
||||
|
|
|
@ -65,9 +65,6 @@ static void copyData(const ModifierData *md, ModifierData *target)
|
|||
|
||||
modifier_copyData_generic(md, target);
|
||||
|
||||
if (tmcmd->cache_file) {
|
||||
id_us_plus(&tmcmd->cache_file->id);
|
||||
}
|
||||
tmcmd->reader = NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -67,18 +67,6 @@ static void initData(ModifierData *md)
|
|||
umd->scalex = umd->scaley = 1.0f;
|
||||
}
|
||||
|
||||
static void copyData(const ModifierData *md, ModifierData *target)
|
||||
{
|
||||
#if 0
|
||||
const UVProjectModifierData *umd = (const UVProjectModifierData *) md;
|
||||
#endif
|
||||
UVProjectModifierData *tumd = (UVProjectModifierData *) target;
|
||||
|
||||
modifier_copyData_generic(md, target);
|
||||
|
||||
id_us_plus((ID *)tumd->image);
|
||||
}
|
||||
|
||||
static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(md))
|
||||
{
|
||||
CustomDataMask dataMask = 0;
|
||||
|
@ -370,7 +358,7 @@ ModifierTypeInfo modifierType_UVProject = {
|
|||
eModifierTypeFlag_SupportsEditmode |
|
||||
eModifierTypeFlag_EnableInEditmode,
|
||||
|
||||
/* copyData */ copyData,
|
||||
/* copyData */ modifier_copyData_generic,
|
||||
/* deformVerts */ NULL,
|
||||
/* deformMatrices */ NULL,
|
||||
/* deformVertsEM */ NULL,
|
||||
|
|
Loading…
Reference in New Issue