From 43e0e8defa71bd3086b8547c848f7686e019e51b Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 8 May 2018 15:27:10 +0200 Subject: 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! --- source/blender/modifiers/intern/MOD_dynamicpaint.c | 9 --------- source/blender/modifiers/intern/MOD_meshsequencecache.c | 3 --- source/blender/modifiers/intern/MOD_uvproject.c | 14 +------------- 3 files changed, 1 insertion(+), 25 deletions(-) (limited to 'source') diff --git a/source/blender/modifiers/intern/MOD_dynamicpaint.c b/source/blender/modifiers/intern/MOD_dynamicpaint.c index 9a497acbde1..e7cec312948 100644 --- a/source/blender/modifiers/intern/MOD_dynamicpaint.c +++ b/source/blender/modifiers/intern/MOD_dynamicpaint.c @@ -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) diff --git a/source/blender/modifiers/intern/MOD_meshsequencecache.c b/source/blender/modifiers/intern/MOD_meshsequencecache.c index e0da66a1734..af3039c50da 100644 --- a/source/blender/modifiers/intern/MOD_meshsequencecache.c +++ b/source/blender/modifiers/intern/MOD_meshsequencecache.c @@ -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; } diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c index c0e3b488c2e..6006cd92ec9 100644 --- a/source/blender/modifiers/intern/MOD_uvproject.c +++ b/source/blender/modifiers/intern/MOD_uvproject.c @@ -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, -- cgit v1.2.3