[Bf-blender-cvs] [287197c] master: Depsgraph: Fully switch from string to const char*

Sergey Sharybin noreply at git.blender.org
Mon Nov 7 11:44:07 CET 2016


Commit: 287197c4e33ca27a02188402543af0ba0286a5f5
Author: Sergey Sharybin
Date:   Thu Nov 3 14:45:47 2016 +0100
Branches: master
https://developer.blender.org/rB287197c4e33ca27a02188402543af0ba0286a5f5

Depsgraph: Fully switch from string to const char*

This brings up to 10-20% depsgraph build time improvement in the layout
files from the studio repository.

===================================================================

M	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M	source/blender/depsgraph/intern/builder/deg_builder_nodes.h
M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.h
M	source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc
M	source/blender/depsgraph/intern/depsgraph_intern.h
M	source/blender/depsgraph/intern/eval/deg_eval_debug.cc
M	source/blender/depsgraph/intern/eval/deg_eval_debug.h
M	source/blender/depsgraph/intern/nodes/deg_node.cc
M	source/blender/depsgraph/intern/nodes/deg_node.h
M	source/blender/depsgraph/intern/nodes/deg_node_component.cc
M	source/blender/depsgraph/intern/nodes/deg_node_component.h
M	source/blender/depsgraph/intern/nodes/deg_node_operation.cc

===================================================================

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 63dd915..445b720 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -190,7 +190,7 @@ OperationDepsNode *DepsgraphNodeBuilder::add_operation_node(
         eDepsOperation_Type optype,
         DepsEvalOperationCb op,
         eDepsOperation_Code opcode,
-        const string &name,
+        const char *name,
         int name_tag)
 {
 	OperationDepsNode *op_node = comp_node->has_operation(opcode,
@@ -218,7 +218,7 @@ OperationDepsNode *DepsgraphNodeBuilder::add_operation_node(
         eDepsOperation_Type optype,
         DepsEvalOperationCb op,
         eDepsOperation_Code opcode,
-        const string &name,
+        const char *name,
         int name_tag)
 {
 	ComponentDepsNode *comp_node = add_component_node(id, comp_type, comp_name);
@@ -231,7 +231,7 @@ OperationDepsNode *DepsgraphNodeBuilder::add_operation_node(
         eDepsOperation_Type optype,
         DepsEvalOperationCb op,
         eDepsOperation_Code opcode,
-        const string& name,
+        const char *name,
         int name_tag)
 {
 	return add_operation_node(id,
@@ -248,7 +248,7 @@ bool DepsgraphNodeBuilder::has_operation_node(ID *id,
                                               eDepsNode_Type comp_type,
                                               const char *comp_name,
                                               eDepsOperation_Code opcode,
-                                              const string &name,
+                                              const char *name,
                                               int name_tag)
 {
 	return find_operation_node(id,
@@ -264,7 +264,7 @@ OperationDepsNode *DepsgraphNodeBuilder::find_operation_node(
         eDepsNode_Type comp_type,
         const char *comp_name,
         eDepsOperation_Code opcode,
-        const string &name,
+        const char *name,
         int name_tag)
 {
 	ComponentDepsNode *comp_node = add_component_node(id, comp_type, comp_name);
@@ -275,7 +275,7 @@ OperationDepsNode *DepsgraphNodeBuilder::find_operation_node(
         ID *id,
         eDepsNode_Type comp_type,
         eDepsOperation_Code opcode,
-        const string& name,
+        const char *name,
         int name_tag)
 {
 	return find_operation_node(id, comp_type, "", opcode, name, name_tag);
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
index e93dedc..72dc733 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.h
@@ -82,7 +82,7 @@ struct DepsgraphNodeBuilder {
 	                                      eDepsOperation_Type optype,
 	                                      DepsEvalOperationCb op,
 	                                      eDepsOperation_Code opcode,
-	                                      const string& name = "",
+	                                      const char *name = "",
 	                                      int name_tag = -1);
 	OperationDepsNode *add_operation_node(ID *id,
 	                                      eDepsNode_Type comp_type,
@@ -90,34 +90,34 @@ struct DepsgraphNodeBuilder {
 	                                      eDepsOperation_Type optype,
 	                                      DepsEvalOperationCb op,
 	                                      eDepsOperation_Code opcode,
-	                                      const string& name = "",
+	                                      const char *name = "",
 	                                      int name_tag = -1);
 	OperationDepsNode *add_operation_node(ID *id,
 	                                      eDepsNode_Type comp_type,
 	                                      eDepsOperation_Type optype,
 	                                      DepsEvalOperationCb op,
 	                                      eDepsOperation_Code opcode,
-	                                      const string& name = "",
+	                                      const char *name = "",
 	                                      int name_tag = -1);
 
 	bool has_operation_node(ID *id,
 	                        eDepsNode_Type comp_type,
 	                        const char *comp_name,
 	                        eDepsOperation_Code opcode,
-	                        const string& name = "",
+	                        const char *name = "",
 	                        int name_tag = -1);
 
 	OperationDepsNode *find_operation_node(ID *id,
 	                                       eDepsNode_Type comp_type,
 	                                       const char *comp_name,
 	                                       eDepsOperation_Code opcode,
-	                                       const string &name = "",
+	                                       const char *name = "",
 	                                       int name_tag = -1);
 
 	OperationDepsNode *find_operation_node(ID *id,
 	                                       eDepsNode_Type comp_type,
 	                                       eDepsOperation_Code opcode,
-	                                       const string &name = "",
+	                                       const char *name = "",
 	                                       int name_tag = -1);
 
 	void build_scene(Main *bmain, Scene *scene);
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 61275ff..797fcd8 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -214,7 +214,7 @@ OperationDepsNode *DepsgraphRelationBuilder::find_node(
 	                                                       key.name_tag);
 	if (!op_node) {
 		fprintf(stderr, "find_node_operation: Failed for (%s, '%s')\n",
-		        DEG_OPNAMES[key.opcode], key.name.c_str());
+		        DEG_OPNAMES[key.opcode], key.name);
 	}
 	return op_node;
 }
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.h b/source/blender/depsgraph/intern/builder/deg_builder_relations.h
index ce9f36c..056d4fd 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.h
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.h
@@ -104,7 +104,7 @@ struct ComponentKey
 	ComponentKey() :
 	    id(NULL), type(DEPSNODE_TYPE_UNDEFINED), name("")
 	{}
-	ComponentKey(ID *id, eDepsNode_Type type, const string &name = "") :
+	ComponentKey(ID *id, eDepsNode_Type type, const char *name = "") :
 	    id(id), type(type), name(name)
 	{}
 
@@ -120,7 +120,7 @@ struct ComponentKey
 
 	ID *id;
 	eDepsNode_Type type;
-	string name;
+	const char *name;
 };
 
 struct OperationKey
@@ -136,7 +136,7 @@ struct OperationKey
 
 	OperationKey(ID *id,
 	             eDepsNode_Type component_type,
-	             const string &name,
+	             const char *name,
 	             int name_tag = -1)
 	        : id(id),
 	          component_type(component_type),
@@ -147,8 +147,8 @@ struct OperationKey
 	{}
 	OperationKey(ID *id,
 	             eDepsNode_Type component_type,
-	             const string &component_name,
-	             const string &name,
+	             const char *component_name,
+	             const char *name,
 	             int name_tag)
 	        : id(id),
 	          component_type(component_type),
@@ -170,7 +170,7 @@ struct OperationKey
 	{}
 	OperationKey(ID *id,
 	             eDepsNode_Type component_type,
-	             const string &component_name,
+	             const char *component_name,
 	             eDepsOperation_Code opcode)
 	        : id(id),
 	          component_type(component_type),
@@ -183,7 +183,7 @@ struct OperationKey
 	OperationKey(ID *id,
 	            eDepsNode_Type component_type,
 	            eDepsOperation_Code opcode,
-	            const string &name,
+	            const char *name,
 	            int name_tag = -1)
 	        : id(id),
 	          component_type(component_type),
@@ -194,9 +194,9 @@ struct OperationKey
 	{}
 	OperationKey(ID *id,
 	             eDepsNode_Type component_type,
-	             const string &component_name,
+	             const char *component_name,
 	             eDepsOperation_Code opcode,
-	             const string &name,
+	             const char *name,
 	             int name_tag = -1)
 	        : id(id),
 	          component_type(component_type),
@@ -217,9 +217,9 @@ struct OperationKey
 
 	ID *id;
 	eDepsNode_Type component_type;
-	string component_name;
+	const char *component_name;
 	eDepsOperation_Code opcode;
-	string name;
+	const char *name;
 	int name_tag;
 };
 
@@ -327,7 +327,7 @@ protected:
 
 	template <typename KeyType>
 	DepsNodeHandle create_node_handle(const KeyType& key,
-	                                  const string& default_name = "");
+	                                  const char *default_name = "");
 
 	bool needs_animdata_node(ID *id);
 
@@ -337,7 +337,7 @@ private:
 
 struct DepsNodeHandle
 {
-	DepsNodeHandle(DepsgraphRelationBuilder *builder, OperationDepsNode *node, const string &default_name = "") :
+	DepsNodeHandle(DepsgraphRelationBuilder *builder, OperationDepsNode *node, const char *default_name = "") :
 	    builder(builder),
 	    node(node),
 	    default_name(default_name)
@@ -347,7 +347,7 @@ struct DepsNodeHandle
 
 	DepsgraphRelationBuilder *builder;
 	OperationDepsNode *node;
-	const string &default_name;
+	const char *default_name;
 };
 
 /* Utilities for Builders ----------------------------------------------------- */
@@ -441,7 +441,7 @@ void DepsgraphRelationBuilder::add_node_handle_relation(
 template <typename KeyType>
 DepsNodeHandle DepsgraphRelationBuilder::create_node_handle(
         const KeyType &key,
-        const string &default_name)
+        const char *default_name)
 {
 	return DepsNodeHandle(this, find_node(key), default_name);
 }
diff --git a/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc b/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc
index 70cd5f1..0d56ce7 100644
--- a/source/blender/depsgra

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list