Fix crash in own recent rB776a8548f03a049.
authorBastien Montagne <montagne29@wanadoo.fr>
Mon, 26 Sep 2016 07:49:34 +0000 (09:49 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Mon, 26 Sep 2016 07:49:34 +0000 (09:49 +0200)
New ID may be null, have to check this too!

Reported by @panzergame over IRC, thanks.

To be ported to 2.78 as well.

source/blender/blenkernel/intern/sca.c

index c357b2ef9f76773cd5807cbe55d8cc412282e942..61aa8c7589f5c54cef77d0d55668b47655adba7a 100644 (file)
@@ -666,15 +666,16 @@ void set_sca_new_poins(void)
  *     ...and forces us to add yet another very ugly hack to get remapping with logic bricks working. */
 void BKE_sca_logic_links_remap(Main *bmain, Object *ob_old, Object *ob_new)
 {
+       if (ob_new == NULL || (ob_old->controllers.first == NULL && ob_old->actuators.first == NULL)) {
+               /* Nothing to do here... */
+               return;
+       }
+
        GHash *controllers_map = ob_old->controllers.first ?
                                     BLI_ghash_ptr_new_ex(__func__, BLI_listbase_count(&ob_old->controllers)) : NULL;
        GHash *actuators_map = ob_old->actuators.first ?
                                   BLI_ghash_ptr_new_ex(__func__, BLI_listbase_count(&ob_old->actuators)) : NULL;
 
-       if (!(controllers_map || actuators_map)) {
-               return;
-       }
-
        /* We try to remap old controllers/actuators to new ones - in a very basic way. */
        for (bController *cont_old = ob_old->controllers.first, *cont_new = ob_new->controllers.first;
             cont_old;