[Bf-blender-cvs] [3fd224f] depsgraph_refactor: Depsgraph: Report opcodes using their string identifiers instead of numbers
Joshua Leung
noreply at git.blender.org
Wed Jan 21 12:59:56 CET 2015
Commit: 3fd224f2c8a93a93c3e65a2b22373b08a0338ae3
Author: Joshua Leung
Date: Tue Jan 20 16:32:47 2015 +1300
Branches: depsgraph_refactor
https://developer.blender.org/rB3fd224f2c8a93a93c3e65a2b22373b08a0338ae3
Depsgraph: Report opcodes using their string identifiers instead of numbers
===================================================================
M source/blender/depsgraph/intern/depsgraph_build.cpp
M source/blender/depsgraph/intern/depsgraph_build.h
M source/blender/depsgraph/intern/depsgraph_types.h
M source/blender/depsgraph/intern/depsnode_operation.cpp
===================================================================
diff --git a/source/blender/depsgraph/intern/depsgraph_build.cpp b/source/blender/depsgraph/intern/depsgraph_build.cpp
index e2682f0..7877666 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_build.cpp
@@ -337,7 +337,7 @@ OperationDepsNode *DepsgraphRelationBuilder::find_node(const OperationKey &key)
OperationDepsNode *op_node = comp_node->find_operation(key.opcode, key.name);
if (!op_node) {
- fprintf(stderr, "find_node_operation: Failed for (%d, '%s')\n", key.opcode, key.name.c_str());
+ fprintf(stderr, "find_node_operation: Failed for (%s, '%s')\n", DEG_OPNAMES[key.opcode], key.name.c_str());
}
return op_node;
}
diff --git a/source/blender/depsgraph/intern/depsgraph_build.h b/source/blender/depsgraph/intern/depsgraph_build.h
index 50405fc..961103c 100644
--- a/source/blender/depsgraph/intern/depsgraph_build.h
+++ b/source/blender/depsgraph/intern/depsgraph_build.h
@@ -179,12 +179,10 @@ struct OperationKey
string identifier() const
{
- char typebuf[5], codebuf[5];
-
+ char typebuf[5];
sprintf(typebuf, "%d", component_type);
- sprintf(codebuf, "%d", opcode); // XXX: use the string defs instead
- return string("OperationKey(") + "t: " + typebuf + ", cn: '" + component_name + "', c: " + codebuf + ", n: '" + name + "')";
+ return string("OperationKey(") + "t: " + typebuf + ", cn: '" + component_name + "', c: " + DEG_OPNAMES[opcode] + ", n: '" + name + "')";
}
diff --git a/source/blender/depsgraph/intern/depsgraph_types.h b/source/blender/depsgraph/intern/depsgraph_types.h
index cd2ff00..bbcb3e3 100644
--- a/source/blender/depsgraph/intern/depsgraph_types.h
+++ b/source/blender/depsgraph/intern/depsgraph_types.h
@@ -99,6 +99,9 @@ typedef enum eDepsOperation_Code {
#undef DEF_DEG_OPCODE
} eDepsOperation_Code;
+/* String defines for these opcodes, defined in depsnode_operation.cpp */
+extern const char *DEG_OPNAMES[];
+
/* Type of operation */
typedef enum eDepsOperation_Type {
diff --git a/source/blender/depsgraph/intern/depsnode_operation.cpp b/source/blender/depsgraph/intern/depsnode_operation.cpp
index 3700e74..e921cd1 100644
--- a/source/blender/depsgraph/intern/depsnode_operation.cpp
+++ b/source/blender/depsgraph/intern/depsnode_operation.cpp
@@ -40,6 +40,18 @@ extern "C" {
#include "stubs.h" // XXX: THIS MUST BE REMOVED WHEN THE DEPSGRAPH REFACTOR IS DONE
/* ******************************************************** */
+/* OpNode Identifiers Array - Exported to other depsgraph files too... */
+
+/* identifiers for operations */
+const char *DEG_OPNAMES[] = {
+ #define DEF_DEG_OPCODE(label) #label,
+ #include "depsnode_opcodes.h"
+ #undef DEF_DEG_OPCODE
+
+ "<Invalid>"
+};
+
+/* ******************************************************** */
/* Inner Nodes */
OperationDepsNode::OperationDepsNode() :
@@ -53,15 +65,6 @@ OperationDepsNode::~OperationDepsNode()
string OperationDepsNode::identifier() const
{
- /* identifiers for operations */
- const char *DEG_OPNAMES[] = {
- #define DEF_DEG_OPCODE(label) #label,
- #include "depsnode_opcodes.h"
- #undef DEF_DEG_OPCODE
-
- "<Invalid>"
- };
-
BLI_assert((opcode > 0) && (opcode < ARRAY_SIZE(DEG_OPNAMES)));
return string(DEG_OPNAMES[opcode]) + "(" + name + ")";
}
More information about the Bf-blender-cvs
mailing list