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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to