[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55984] trunk/blender/source/blender/ makesrna/intern/rna_nodetree.c: Removed a lot of now-unnecessary checks from node RNA.

Lukas Toenne lukas.toenne at googlemail.com
Fri Apr 12 13:43:21 CEST 2013


Revision: 55984
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55984
Author:   lukastoenne
Date:     2013-04-12 11:43:21 +0000 (Fri, 12 Apr 2013)
Log Message:
-----------
Removed a lot of now-unnecessary checks from node RNA. The typeinfo pointers in bNodeTree, bNode and bNodeSocket are now always pointing to valid type structs. If a tree, node or socket has an unknown type at load time it will be pointed to a dummy "UndefinedType" struct instead, which has default settings and allows for nice debugging. Checking if node->typeinfo etc. is NULL is not necessary any more, makes code a lot easier and smaller.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_nodetree.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2013-04-12 10:52:47 UTC (rev 55983)
+++ trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2013-04-12 11:43:21 UTC (rev 55984)
@@ -505,7 +505,7 @@
 {
 	bNodeTree *ntree = (bNodeTree *)ptr->data;
 	
-	if (ntree->typeinfo && ntree->typeinfo->ext.srna)
+	if (ntree->typeinfo->ext.srna)
 		return ntree->typeinfo->ext.srna;
 	else
 		return &RNA_NodeTree;
@@ -1066,67 +1066,7 @@
 	ED_node_tag_update_nodetree(CTX_data_main(C), ntree);
 }
 
-static void rna_NodeTree_bl_idname_get(PointerRNA *ptr, char *value)
-{
-	bNodeTree *ntree = ptr->data;
-	if (ntree->typeinfo)
-		strcpy(value, ntree->typeinfo->idname);
-	else
-		strcpy(value, "UNDEFINED");
-}
-static int rna_NodeTree_bl_idname_length(PointerRNA *ptr)
-{
-	bNodeTree *ntree = ptr->data;
-	if (ntree->typeinfo)
-		return strlen(ntree->typeinfo->idname);
-	else
-		return strlen("UNDEFINED");
-}
 
-static void rna_NodeTree_bl_label_get(PointerRNA *ptr, char *value)
-{
-	bNodeTree *ntree = ptr->data;
-	if (ntree->typeinfo)
-		strcpy(value, ntree->typeinfo->ui_name);
-	else
-		strcpy(value, "UNDEFINED");
-}
-static int rna_NodeTree_bl_label_length(PointerRNA *ptr)
-{
-	bNodeTree *ntree = ptr->data;
-	if (ntree->typeinfo)
-		return strlen(ntree->typeinfo->ui_name);
-	else
-		return strlen("UNDEFINED");
-}
-
-static void rna_NodeTree_bl_description_get(PointerRNA *ptr, char *value)
-{
-	bNodeTree *ntree = ptr->data;
-	if (ntree->typeinfo)
-		strcpy(value, ntree->typeinfo->ui_description);
-	else
-		strcpy(value, "UNDEFINED");
-}
-static int rna_NodeTree_bl_description_length(PointerRNA *ptr)
-{
-	bNodeTree *ntree = ptr->data;
-	if (ntree->typeinfo)
-		return strlen(ntree->typeinfo->ui_description);
-	else
-		return strlen("UNDEFINED");
-}
-
-static int rna_NodeTree_bl_icon_get(PointerRNA *ptr)
-{
-	bNodeTree *ntree = ptr->data;
-	if (ntree->typeinfo)
-		return ntree->typeinfo->ui_icon;
-	else
-		return ICON_NONE;
-}
-
-
 /* ******** NodeLink ******** */
 
 static int rna_NodeLink_is_hidden_get(PointerRNA *ptr)
@@ -1142,7 +1082,7 @@
 {
 	bNode *node = (bNode *)ptr->data;
 	
-	if (node->typeinfo && node->typeinfo->ext.srna)
+	if (node->typeinfo->ext.srna)
 		return node->typeinfo->ext.srna;
 	else
 		return ptr->type;
@@ -1190,9 +1130,6 @@
 	void *ret;
 	int visible;
 
-	if (!node->typeinfo)
-		return FALSE;
-
 	RNA_pointer_create(NULL, node->typeinfo->ext.srna, node, &ptr); /* dummy */
 	func = &rna_Node_poll_instance_func; /* RNA_struct_find_function(&ptr, "poll_instance"); */
 
@@ -1210,9 +1147,6 @@
 
 static int rna_Node_poll_instance_default(bNode *node, bNodeTree *ntree)
 {
-	if (!node->typeinfo)
-		return FALSE;
-	
 	/* use the basic poll function */
 	return rna_Node_poll(node->typeinfo, ntree);
 }
@@ -1225,9 +1159,6 @@
 	ParameterList list;
 	FunctionRNA *func;
 
-	if (!node->typeinfo)
-		return;
-
 	RNA_pointer_create((ID *)ntree, node->typeinfo->ext.srna, node, &ptr);
 	func = &rna_Node_update_func; /* RNA_struct_find_function(&ptr, "update"); */
 
@@ -1245,9 +1176,6 @@
 	ParameterList list;
 	FunctionRNA *func;
 
-	if (!node->typeinfo)
-		return;
-
 	func = &rna_Node_init_func; /* RNA_struct_find_function(&ptr, "init"); */
 
 	RNA_parameter_list_create(&list, ptr, func);
@@ -1264,9 +1192,6 @@
 	ParameterList list;
 	FunctionRNA *func;
 
-	if (!node->typeinfo)
-		return;
-
 	func = &rna_Node_copy_func; /* RNA_struct_find_function(&ptr, "copy"); */
 
 	RNA_parameter_list_create(&list, ptr, func);
@@ -1284,9 +1209,6 @@
 	ParameterList list;
 	FunctionRNA *func;
 
-	if (!node->typeinfo)
-		return;
-
 	func = &rna_Node_free_func; /* RNA_struct_find_function(&ptr, "free"); */
 
 	RNA_parameter_list_create(&list, ptr, func);
@@ -1303,9 +1225,6 @@
 	ParameterList list;
 	FunctionRNA *func;
 
-	if (!node->typeinfo)
-		return;
-
 	func = &rna_Node_draw_buttons_func; /* RNA_struct_find_function(&ptr, "draw_buttons"); */
 
 	RNA_parameter_list_create(&list, ptr, func);
@@ -1324,9 +1243,6 @@
 	ParameterList list;
 	FunctionRNA *func;
 
-	if (!node->typeinfo)
-		return;
-
 	func = &rna_Node_draw_buttons_ext_func; /* RNA_struct_find_function(&ptr, "draw_buttons_ext"); */
 
 	RNA_parameter_list_create(&list, ptr, func);
@@ -1631,11 +1547,6 @@
 	bNodeTree *ntree = (bNodeTree *)id;
 	bNodeSocket *sock;
 	
-	if (!node->typeinfo) {
-		BKE_reportf(reports, RPT_ERROR, "Node type %s of node %s undefined", node->idname, node->name);
-		return NULL;
-	}
-	
 	sock = nodeAddSocket(ntree, node, SOCK_IN, type, identifier, name);
 	
 	if (sock == NULL) {
@@ -1654,11 +1565,6 @@
 	bNodeTree *ntree = (bNodeTree *)id;
 	bNodeSocket *sock;
 	
-	if (!node->typeinfo) {
-		BKE_reportf(reports, RPT_ERROR, "Node type %s of node %s undefined", node->idname, node->name);
-		return NULL;
-	}
-	
 	sock = nodeAddSocket(ntree, node, SOCK_OUT, type, identifier, name);
 	
 	if (sock == NULL) {
@@ -1676,11 +1582,6 @@
 {
 	bNodeTree *ntree = (bNodeTree *)id;
 	
-	if (!node->typeinfo) {
-		BKE_reportf(reports, RPT_ERROR, "Node type %s of node %s undefined", node->idname, node->name);
-		return;
-	}
-	
 	if (BLI_findindex(&node->inputs, sock) == -1 && BLI_findindex(&node->outputs, sock) == -1) {
 		BKE_reportf(reports, RPT_ERROR, "Unable to locate socket '%s' in node", sock->identifier);
 	}
@@ -1697,11 +1598,6 @@
 	bNodeTree *ntree = (bNodeTree *)id;
 	bNodeSocket *sock, *nextsock;
 	
-	if (!node->typeinfo) {
-		BKE_reportf(reports, RPT_ERROR, "Node type %s of node %s undefined", node->idname, node->name);
-		return;
-	}
-	
 	for (sock = node->inputs.first; sock; sock = nextsock) {
 		nextsock = sock->next;
 		nodeRemoveSocket(ntree, node, sock);
@@ -1716,11 +1612,6 @@
 	bNodeTree *ntree = (bNodeTree *)id;
 	bNodeSocket *sock, *nextsock;
 	
-	if (!node->typeinfo) {
-		BKE_reportf(reports, RPT_ERROR, "Node type %s of node %s undefined", node->idname, node->name);
-		return;
-	}
-	
 	for (sock = node->outputs.first; sock; sock = nextsock) {
 		nextsock = sock->next;
 		nodeRemoveSocket(ntree, node, sock);
@@ -1733,99 +1624,18 @@
 static void rna_Node_width_range(PointerRNA *ptr, float *min, float *max, float *softmin, float *softmax)
 {
 	bNode *node = ptr->data;
-	if (node->typeinfo) {
-		*min = *softmin = node->typeinfo->minwidth;
-		*max = *softmax = node->typeinfo->maxwidth;
-	}
-	else {
-		*min = *softmin = 0.0f;
-		*max = *softmax = 0.0f;
-	}
+	*min = *softmin = node->typeinfo->minwidth;
+	*max = *softmax = node->typeinfo->maxwidth;
 }
 
 static void rna_Node_height_range(PointerRNA *ptr, float *min, float *max, float *softmin, float *softmax)
 {
 	bNode *node = ptr->data;
-	if (node->typeinfo) {
-		*min = *softmin = node->typeinfo->minheight;
-		*max = *softmax = node->typeinfo->maxheight;
-	}
-	else {
-		*min = *softmin = 0.0f;
-		*max = *softmax = 0.0f;
-	}
+	*min = *softmin = node->typeinfo->minheight;
+	*max = *softmax = node->typeinfo->maxheight;
 }
 
-static void rna_Node_bl_idname_get(PointerRNA *ptr, char *value)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		strcpy(value, node->typeinfo->idname);
-	else
-		strcpy(value, "UNDEFINED");
-}
-static int rna_Node_bl_idname_length(PointerRNA *ptr)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		return strlen(node->typeinfo->idname);
-	else
-		return strlen("UNDEFINED");
-}
 
-static void rna_Node_bl_label_get(PointerRNA *ptr, char *value)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		strcpy(value, node->typeinfo->ui_name);
-	else
-		strcpy(value, "UNDEFINED");
-}
-static int rna_Node_bl_label_length(PointerRNA *ptr)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		return strlen(node->typeinfo->ui_name);
-	else
-		return strlen("UNDEFINED");
-}
-
-static void rna_Node_bl_description_get(PointerRNA *ptr, char *value)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		strcpy(value, node->typeinfo->ui_description);
-	else
-		strcpy(value, "");
-}
-static int rna_Node_bl_description_length(PointerRNA *ptr)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		return strlen(node->typeinfo->ui_description);
-	else
-		return strlen("");
-}
-
-static int rna_Node_bl_icon_get(PointerRNA *ptr)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		return node->typeinfo->ui_icon;
-	else
-		return ICON_NONE;
-}
-
-static int rna_Node_bl_static_type_get(PointerRNA *ptr)
-{
-	bNode *node = ptr->data;
-	if (node->typeinfo)
-		return node->typeinfo->type;
-	else
-		return NODE_UNDEFINED;
-}
-
-
 /* ******** Node Socket ******** */
 
 static void rna_NodeSocket_draw(bContext *C, struct uiLayout *layout, PointerRNA *ptr, PointerRNA *node_ptr)
@@ -1836,9 +1646,6 @@
 	ParameterList list;
 	FunctionRNA *func;
 
-	if (!sock->typeinfo)
-		return;
-
 	func = &rna_NodeSocket_draw_func; /* RNA_struct_find_function(&ptr, "draw"); */
 
 	RNA_parameter_list_create(&list, ptr, func);
@@ -1859,9 +1666,6 @@
 	FunctionRNA *func;
 	void *ret;
 
-	if (!sock->typeinfo)
-		return;
-
 	func = &rna_NodeSocket_draw_color_func; /* RNA_struct_find_function(&ptr, "draw_color"); */
 
 	RNA_parameter_list_create(&list, ptr, func);
@@ -1954,7 +1758,7 @@
 {
 	bNodeSocket *sock = (bNodeSocket *)ptr->data;
 	
-	if (sock->typeinfo && sock->typeinfo->ext_socket.srna)
+	if (sock->typeinfo->ext_socket.srna)
 		return sock->typeinfo->ext_socket.srna;
 	else
 		return &RNA_NodeSocket;
@@ -1990,23 +1794,6 @@
 	return sock->prop;
 }
 
-static void rna_NodeSocket_bl_idname_get(PointerRNA *ptr, char *value)
-{
-	bNodeSocket *sock = ptr->data;
-	if (sock->typeinfo)
-		strcpy(value, sock->typeinfo->idname);
-	else
-		strcpy(value, "UNDEFINED");
-}
-static int rna_NodeSocket_bl_idname_length(PointerRNA *ptr)
-{
-	bNodeSocket *sock = ptr->data;
-	if (sock->typeinfo)
-		return strlen(sock->typeinfo->idname);
-	else
-		return strlen("UNDEFINED");
-}
-
 static PointerRNA rna_NodeSocket_node_get(PointerRNA *ptr)
 {
 	bNodeTree *ntree = (bNodeTree *)ptr->id.data;
@@ -5955,7 +5742,6 @@
 	/* registration */
 	prop = RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE);
 	RNA_def_property_string_sdna(prop, NULL, "typeinfo->idname");
-	RNA_def_property_string_funcs(prop, "rna_NodeSocket_bl_idname_get", "rna_NodeSocket_bl_idname_length", NULL);
 	RNA_def_property_flag(prop, PROP_REGISTER | PROP_NEVER_CLAMP);
 	RNA_def_property_ui_text(prop, "ID Name", "");
 
@@ -6028,7 +5814,6 @@
 	/* registration */
 	prop = RNA_def_property(srna, "bl_socket_idname", PROP_STRING, PROP_NONE);
 	RNA_def_property_string_sdna(prop, NULL, "typeinfo->idname");

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list