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:
Bastien Montagne 2018-05-08 15:27:10 +02:00
parent 3740f7593d
commit 43e0e8defa
3 changed files with 1 additions and 25 deletions

View File

@ -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)

View File

@ -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;
}

View File

@ -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,