[Bf-blender-cvs] [81fae56cb92] master: Fix T86298: crash when loading "corrupted" geometry node tree
Jacques Lucke
noreply at git.blender.org
Mon Mar 29 16:57:15 CEST 2021
Commit: 81fae56cb9213ca7d64ac97bef7f7447fb96924f
Author: Jacques Lucke
Date: Mon Mar 29 16:56:53 2021 +0200
Branches: master
https://developer.blender.org/rB81fae56cb9213ca7d64ac97bef7f7447fb96924f
Fix T86298: crash when loading "corrupted" geometry node tree
The file was not really corrupted (as in, Blender did everything
correctly while saving). I only did not consider the case when
a .blend file is resaved in an older version before.
===================================================================
M source/blender/blenkernel/intern/node.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index 08a9628a6e6..315ff40289d 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -778,6 +778,13 @@ static void lib_link_node_socket(BlendLibReader *reader, Library *lib, bNodeSock
{
IDP_BlendReadLib(reader, sock->prop);
+ /* This can happen for all socket types when a file is saved in an older version of Blender than
+ * it was originally created in (T86298). Some socket types still require a default value. The
+ * default value of those sockets will be created in `ntreeSetTypes`. */
+ if (sock->default_value == nullptr) {
+ return;
+ }
+
switch ((eNodeSocketDatatype)sock->type) {
case SOCK_OBJECT: {
bNodeSocketValueObject *default_value = (bNodeSocketValueObject *)sock->default_value;
More information about the Bf-blender-cvs
mailing list