Cleanup: use proper `ObjectWalkFunc` typedef in modifiers' object callback func.
authorBastien Montagne <montagne29@wanadoo.fr>
Mon, 5 Oct 2015 13:57:10 +0000 (15:57 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Mon, 5 Oct 2015 13:57:10 +0000 (15:57 +0200)
Also, fix own stupidity, no need to define ID callback in case we only have objects,
calling code knows to fallback to `foreachObjectLink()` when `foreachIDLink()` is missing...

22 files changed:
source/blender/blenkernel/BKE_modifier.h
source/blender/modifiers/intern/MOD_armature.c
source/blender/modifiers/intern/MOD_array.c
source/blender/modifiers/intern/MOD_boolean.c
source/blender/modifiers/intern/MOD_cast.c
source/blender/modifiers/intern/MOD_curve.c
source/blender/modifiers/intern/MOD_datatransfer.c
source/blender/modifiers/intern/MOD_hook.c
source/blender/modifiers/intern/MOD_lattice.c
source/blender/modifiers/intern/MOD_mask.c
source/blender/modifiers/intern/MOD_meshdeform.c
source/blender/modifiers/intern/MOD_mirror.c
source/blender/modifiers/intern/MOD_normal_edit.c
source/blender/modifiers/intern/MOD_ocean.c
source/blender/modifiers/intern/MOD_screw.c
source/blender/modifiers/intern/MOD_simpledeform.c
source/blender/modifiers/intern/MOD_surface.c
source/blender/modifiers/intern/MOD_uvproject.c
source/blender/modifiers/intern/MOD_warp.c
source/blender/modifiers/intern/MOD_weightvgedit.c
source/blender/modifiers/intern/MOD_weightvgmix.c
source/blender/modifiers/intern/MOD_weightvgproximity.c

index ded6e13e0035c4d355cdd91f47dcc4dc9565f85b..05167e29050e9db4244367b3dd82dabd6817b720 100644 (file)
@@ -104,6 +104,7 @@ typedef enum {
        eModifierTypeFlag_UsesPreview = (1 << 9)
 } ModifierTypeFlag;
 
+/* IMPORTANT! Keep ObjectWalkFunc and IDWalkFunc signatures compatible. */
 typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin);
 typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin);
 typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname);
index 9ce31cebb66044593a20b20d7289d2bf4d405d4b..2ecbf276fc80bb6d5899411b8b03c9292fb091e5 100644 (file)
@@ -91,8 +91,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        ArmatureModifierData *amd = (ArmatureModifierData *) md;
 
index efb77f73ec9c53a76c3ebd63aaeb74b63af043b2..1cbbdaf3b23d445072a3dd9308fe373847efcaf0 100644 (file)
@@ -90,8 +90,7 @@ static void copyData(ModifierData *md, ModifierData *target)
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        ArrayModifierData *amd = (ArrayModifierData *) md;
 
index eb54a3c4e9cb0377f0ab07ab46dc9981ad22f392..b2b2a18bb2680ab8149d199506372170e2123a32 100644 (file)
@@ -65,8 +65,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        BooleanModifierData *bmd = (BooleanModifierData *) md;
 
index 7c3d65a5c9a06615174bf48309d4eea00e332208..5c3b40b5d0ee414392d3509ba9e0bcc2bfd43d41 100644 (file)
@@ -97,8 +97,7 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        CastModifierData *cmd = (CastModifierData *) md;
 
index 7a6e471a01206ca3526239b42100dec17f13cfb7..15e81ef508e62d52efe348cbe8a9bc88fbe12dc9 100644 (file)
@@ -84,8 +84,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(userRenderParams))
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        CurveModifierData *cmd = (CurveModifierData *) md;
 
index 85e9b4ee185813127e65d7a2a725bbdd0d3821e6..0ce97760afb409932c210a3daf9b7b2a8df79b58 100644 (file)
@@ -118,19 +118,14 @@ static bool dependsOnNormals(ModifierData *md)
        return false;
 }
 
-static void foreachObjectLink(ModifierData *md, Object *ob,
-                              void (*walk)(void *userData, Object *ob, Object **obpoin),
-                              void *userData)
+static void foreachObjectLink(
+        ModifierData *md, Object *ob,
+        ObjectWalkFunc walk, void *userData)
 {
        DataTransferModifierData *dtmd = (DataTransferModifierData *) md;
        walk(userData, ob, &dtmd->ob_source);
 }
 
-static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
-{
-       foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
-}
-
 static void updateDepgraph(ModifierData *md, DagForest *forest,
                            struct Main *UNUSED(bmain),
                            struct Scene *UNUSED(scene),
@@ -260,6 +255,6 @@ ModifierTypeInfo modifierType_DataTransfer = {
        /* dependsOnTime */     NULL,
        /* dependsOnNormals */  dependsOnNormals,
        /* foreachObjectLink */ foreachObjectLink,
-       /* foreachIDLink */     foreachIDLink,
+       /* foreachIDLink */     NULL,
        /* foreachTexLink */    NULL,
 };
index 3a10fabbb8ecc7e5d4c47ca1e895969d1ddd5c6f..b043fa8fc628f27746d9e97073aaa51045d01e9a 100644 (file)
@@ -103,8 +103,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        HookModifierData *hmd = (HookModifierData *) md;
 
index 52a4f441b63399c15bc5c4d95d17c245df55c466..3c5406a8adb6ff1c4410ec2ab473c94244c3b6fc 100644 (file)
@@ -83,8 +83,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(userRenderParams))
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        LatticeModifierData *lmd = (LatticeModifierData *) md;
 
index 06fbab65d7b0862398dac40a3f7dc813d46f8397..33ded72aaeb91d193bbd347159a45e762c2a4d49 100644 (file)
@@ -70,8 +70,7 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        MaskModifierData *mmd = (MaskModifierData *)md;
        walk(userData, ob, &mmd->ob_arm);
index 5bd33d2a49fdca90d79c03bbb7542905a327a396..152b89e47a39cb027f3e4d7ea7916216a4763fec 100644 (file)
@@ -114,8 +114,7 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;
 
index 3e10fa1d77d855c6b5fc0417308117861f5a8a74..af6a5db1f35206b2eb4f17829659dede70823e51 100644 (file)
@@ -65,9 +65,9 @@ static void copyData(ModifierData *md, ModifierData *target)
        modifier_copyData_generic(md, target);
 }
 
-static void foreachObjectLink(ModifierData *md, Object *ob,
-                              void (*walk)(void *userData, Object *ob, Object **obpoin),
-                              void *userData)
+static void foreachObjectLink(
+        ModifierData *md, Object *ob,
+        ObjectWalkFunc walk, void *userData)
 {
        MirrorModifierData *mmd = (MirrorModifierData *) md;
 
index 87d75c6f1a7c01cd59c356e3eca6af73de5639ab..7c199c623eeb2e46cec598b6a0cc7ace74743246 100644 (file)
@@ -453,13 +453,6 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
        walk(userData, ob, &smd->target);
 }
 
-static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
-{
-       NormalEditModifierData *smd = (NormalEditModifierData *) md;
-
-       walk(userData, ob, (ID **)&smd->target);
-}
-
 static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
 {
        NormalEditModifierData *smd = (NormalEditModifierData *)md;
@@ -524,6 +517,6 @@ ModifierTypeInfo modifierType_NormalEdit = {
        /* dependsOnTime */     NULL,
        /* dependsOnNormals */  dependsOnNormals,
        /* foreachObjectLink */ foreachObjectLink,
-       /* foreachIDLink */     foreachIDLink,
+       /* foreachIDLink */     NULL,
        /* foreachTexLink */    NULL,
 };
index 913c2f25c15daa69b03e08d6cabe4460129058b4..54a7278be72ee99f15e44efdecc26a1710ca8c4e 100644 (file)
@@ -585,4 +585,5 @@ ModifierTypeInfo modifierType_Ocean = {
        /* dependsOnNormals */  dependsOnNormals,
        /* foreachObjectLink */ NULL,
        /* foreachIDLink */     NULL,
+       /* foreachTexLink */    NULL,
 };
index db65f4431e4d6b0f3bfdaa80d035762750992dc3..386b2179c6386d79e02ab9ddaa04b92f9c43604c 100644 (file)
@@ -1090,8 +1090,7 @@ static void updateDepsgraph(ModifierData *md,
 
 static void foreachObjectLink(
         ModifierData *md, Object *ob,
-        void (*walk)(void *userData, Object *ob, Object **obpoin),
-        void *userData)
+        ObjectWalkFunc walk, void *userData)
 {
        ScrewModifierData *ltmd = (ScrewModifierData *) md;
 
index 706a296f5a1e7a8ad259bdb7dcedd78373d8c4d9..22a19cf77a87173168a8f3c7c63ae13fc2e87468 100644 (file)
@@ -279,8 +279,9 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
        return dataMask;
 }
 
-static void foreachObjectLink(ModifierData *md, Object *ob,
-                              void (*walk)(void *userData, Object *ob, Object **obpoin), void *userData)
+static void foreachObjectLink(
+        ModifierData *md, Object *ob,
+        ObjectWalkFunc walk, void *userData)
 {
        SimpleDeformModifierData *smd  = (SimpleDeformModifierData *)md;
        walk(userData, ob, &smd->origin);
index ff5e5f643a7f0fa1457a6c616afea6cf49638c41..68987a1d28e47491feadfa2bf452d7d4c95e8056 100644 (file)
@@ -190,6 +190,6 @@ ModifierTypeInfo modifierType_Surface = {
        /* dependsOnTime */     dependsOnTime,
        /* dependsOnNormals */  NULL,
        /* foreachObjectLink */ NULL,
-       /* foreachIDLink */ NULL,
-       /* foreachTexLink */ NULL,
+       /* foreachIDLink */     NULL,
+       /* foreachTexLink */    NULL,
 };
index 1b1474ee66643a0598c9440f46c6a143513548d9..035bda66f6e8c0cc01da929c21d4bf7df006af74 100644 (file)
@@ -101,8 +101,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
 
        walk(userData, ob, (ID **)&umd->image);
 
-       foreachObjectLink(md, ob, (ObjectWalkFunc)walk,
-                         userData);
+       foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
 }
 
 static void updateDepgraph(ModifierData *md, DagForest *forest,
index ae2dbd4a37cd2d7e8f887e24c17d163270c6ddad..b364b7a9e382237c26e8568497cf577889370bfa 100644 (file)
@@ -126,9 +126,7 @@ static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *u
 
        walk(userData, ob, (ID **)&wmd->texture);
 
-       walk(userData, ob, (ID **)&wmd->object_from);
-       walk(userData, ob, (ID **)&wmd->object_to);
-       walk(userData, ob, (ID **)&wmd->map_object);
+       foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
 }
 
 static void foreachTexLink(ModifierData *md, Object *ob, TexWalkFunc walk, void *userData)
index cba077a2f8d23c28c504e30a8b4d483d6815fb54..8e40b01e0f8ab0b9629f750cf39c7eedfa318d51 100644 (file)
@@ -122,9 +122,7 @@ static bool dependsOnTime(ModifierData *md)
        return false;
 }
 
-static void foreachObjectLink(ModifierData *md, Object *ob,
-                              void (*walk)(void *userData, Object *ob, Object **obpoin),
-                              void *userData)
+static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
 {
        WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
        walk(userData, ob, &wmd->mask_tex_map_obj);
index 0649998e42db98739bb6aa8311ed2aea3bd6295a..f4915cd0933dd1e87c25e2bc9e381ea8cc550082 100644 (file)
@@ -171,9 +171,7 @@ static bool dependsOnTime(ModifierData *md)
        return false;
 }
 
-static void foreachObjectLink(ModifierData *md, Object *ob,
-                              void (*walk)(void *userData, Object *ob, Object **obpoin),
-                              void *userData)
+static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
 {
        WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
        walk(userData, ob, &wmd->mask_tex_map_obj);
index 08d7d77c74eec4a927ebc07c25648d61fec05ea2..4affb13905ac487aecdd231332f03ac274ae203d 100644 (file)
@@ -287,9 +287,7 @@ static bool dependsOnTime(ModifierData *md)
        return 0;
 }
 
-static void foreachObjectLink(ModifierData *md, Object *ob,
-                              void (*walk)(void *userData, Object *ob, Object **obpoin),
-                              void *userData)
+static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
 {
        WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
        walk(userData, ob, &wmd->proximity_ob_target);