diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc index 59677d764d6..a1f262cd5c0 100644 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@ -1823,6 +1823,15 @@ static void node_init(const bContext *C, bNodeTree *ntree, bNode *node) ntype->initfunc(ntree, node); } + if (ntype->initfunc_api) { + PointerRNA ptr = RNA_pointer_create_discrete(&ntree->id, &RNA_Node, node); + + /* XXX WARNING: context can be nullptr in case nodes are added in do_versions. + * Delayed init is not supported for nodes with context-based `initfunc_api` at the moment. */ + BLI_assert(C != nullptr); + ntype->initfunc_api(C, &ptr); + } + if (ntree->typeinfo && ntree->typeinfo->node_add_init) { ntree->typeinfo->node_add_init(ntree, node); } @@ -1835,15 +1844,6 @@ static void node_init(const bContext *C, bNodeTree *ntree, bNode *node) id_us_plus(node->id); } - if (ntype->initfunc_api) { - PointerRNA ptr = RNA_pointer_create_discrete(&ntree->id, &RNA_Node, node); - - /* XXX WARNING: context can be nullptr in case nodes are added in do_versions. - * Delayed init is not supported for nodes with context-based `initfunc_api` at the moment. */ - BLI_assert(C != nullptr); - ntype->initfunc_api(C, &ptr); - } - node->flag |= NODE_INIT; }