[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54279] trunk/blender/source/blender/ blenloader/intern/readfile.c: Fix for [#34089] Crash opening file containing translation node saved before rev54235

Ton Roosendaal ton at blender.org
Thu Feb 7 13:55:59 CET 2013


Hi Jeroen,

The amount of versioning hacks in Blender nodes is growing really out of control.

If you decide to change the specification of nodes, it could be designed in a way that the code (node execs) handle it, without changing the file spec.

Now it seems like trunk-saved translation nodes won't work in 2.65a?

-Ton-

------------------------------------------------------------------------
Ton Roosendaal  Blender Foundation   ton at blender.org    www.blender.org
Blender Institute   Entrepotdok 57A  1018AD Amsterdam   The Netherlands

On 3 Feb, 2013, at 16:38, Jeroen Bakker wrote:

> Revision: 54279
>          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54279
> Author:   jbakker
> Date:     2013-02-03 15:38:06 +0000 (Sun, 03 Feb 2013)
> Log Message:
> -----------
> Fix for [#34089] Crash opening file containing translation node saved before rev54235
> 
> Revision Links:
> --------------
>    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54235
> 
> Modified Paths:
> --------------
>    trunk/blender/source/blender/blenloader/intern/readfile.c
> 
> Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
> ===================================================================
> --- trunk/blender/source/blender/blenloader/intern/readfile.c	2013-02-03 15:06:16 UTC (rev 54278)
> +++ trunk/blender/source/blender/blenloader/intern/readfile.c	2013-02-03 15:38:06 UTC (rev 54279)
> @@ -7342,6 +7342,17 @@
> 	}
> }
> 
> +static void do_version_node_fix_translate_wrapping(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree)
> +{
> +    bNode *node;
> +
> +    for (node = ntree->nodes.first; node; node = node->next) {
> +        if (node->type == CMP_NODE_TRANSLATE && node->storage == NULL) {
> +            node->storage = MEM_callocN(sizeof(NodeTranslateData), "node translate data");
> +        }
> +    }
> +}
> +
> static void do_version_node_fix_internal_links_264(void *UNUSED(data), ID *UNUSED(id), bNodeTree *ntree)
> {
> 	bNode *node;
> @@ -8716,6 +8727,17 @@
> 		}
> 	}
> 
> +    // add storage for compositor translate nodes when not existing
> +    if (!MAIN_VERSION_ATLEAST(main, 265, 9)) {
> +        bNodeTreeType *ntreetype;
> +
> +        ntreetype = ntreeGetType(NTREE_COMPOSIT);
> +        if (ntreetype && ntreetype->foreach_nodetree)
> +            ntreetype->foreach_nodetree(main, NULL, do_version_node_fix_translate_wrapping);
> +    }
> +
> +
> +
> 	// if (main->versionfile < 265 || (main->versionfile == 265 && main->subversionfile < 7)) {
> 
> 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
> 
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs



More information about the Bf-committers mailing list