[Bf-blender-cvs] [39226cd437c] blender-v2.93-release: Fix T87317: Cycles XML parsing broken after bugfix for initialization order
Brecht Van Lommel
noreply at git.blender.org
Thu Apr 29 19:16:14 CEST 2021
Commit: 39226cd437c4d68134369740bdab945c4b4d4364
Author: Brecht Van Lommel
Date: Thu Apr 29 19:07:08 2021 +0200
Branches: blender-v2.93-release
https://developer.blender.org/rB39226cd437c4d68134369740bdab945c4b4d4364
Fix T87317: Cycles XML parsing broken after bugfix for initialization order
===================================================================
M intern/cycles/graph/node_type.h
===================================================================
diff --git a/intern/cycles/graph/node_type.h b/intern/cycles/graph/node_type.h
index 2a741d9b06f..8b37398fa17 100644
--- a/intern/cycles/graph/node_type.h
+++ b/intern/cycles/graph/node_type.h
@@ -148,16 +148,17 @@ struct NodeType {
#define NODE_DECLARE \
static const NodeType *get_node_type(); \
template<typename T> static const NodeType *register_type(); \
- static Node *create(const NodeType *type);
+ static Node *create(const NodeType *type); \
+ static const NodeType *node_type;
#define NODE_DEFINE(structname) \
+ const NodeType *structname::node_type = structname::register_type<structname>(); \
Node *structname::create(const NodeType *) \
{ \
return new structname(); \
} \
const NodeType *structname::get_node_type() \
{ \
- static const NodeType *node_type = register_type<structname>(); \
return node_type; \
} \
template<typename T> const NodeType *structname::register_type()
@@ -169,6 +170,8 @@ struct NodeType {
#define NODE_ABSTRACT_DEFINE(structname) \
const NodeType *structname::get_node_base_type() \
{ \
+ /* Base types constructed in this getter to ensure correct initialization \
+ * order. Regular types are not so they are auto-registered for XML parsing. */ \
static const NodeType *node_base_type = register_base_type<structname>(); \
return node_base_type; \
} \
More information about the Bf-blender-cvs
mailing list