[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41123] trunk/blender/source/blender/ makesrna/intern: replace RNA function string lookups with direct assignments, currently the lookup returns the same pointer every time.

Campbell Barton ideasman42 at gmail.com
Thu Oct 20 00:40:04 CEST 2011


Revision: 41123
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41123
Author:   campbellbarton
Date:     2011-10-19 22:40:03 +0000 (Wed, 19 Oct 2011)
Log Message:
-----------
replace RNA function string lookups with direct assignments, currently the lookup returns the same pointer every time. some of these functions - panel/operator poll for eg, are called many times per redraw so while not a bottleneck its unnecessary.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_animation.c
    trunk/blender/source/blender/makesrna/intern/rna_render.c
    trunk/blender/source/blender/makesrna/intern/rna_ui.c
    trunk/blender/source/blender/makesrna/intern/rna_wm.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_animation.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_animation.c	2011-10-19 21:55:27 UTC (rev 41122)
+++ trunk/blender/source/blender/makesrna/intern/rna_animation.c	2011-10-19 22:40:03 UTC (rev 41123)
@@ -80,6 +80,8 @@
 /* wrapper for poll callback */
 static int RKS_POLL_rna_internal(KeyingSetInfo *ksi, bContext *C)
 {
+	extern FunctionRNA rna_KeyingSetInfo_poll_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -87,7 +89,7 @@
 	int ok;
 
 	RNA_pointer_create(NULL, ksi->ext.srna, ksi, &ptr);
-	func= RNA_struct_find_function(&ptr, "poll");
+	func= &rna_KeyingSetInfo_poll_func; /* RNA_struct_find_function(&ptr, "poll"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 		/* hook up arguments */
@@ -108,12 +110,14 @@
 /* wrapper for iterator callback */
 static void RKS_ITER_rna_internal(KeyingSetInfo *ksi, bContext *C, KeyingSet *ks)
 {
+	extern FunctionRNA rna_KeyingSetInfo_iterator_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(NULL, ksi->ext.srna, ksi, &ptr);
-	func= RNA_struct_find_function(&ptr, "iterator");
+	func= &rna_KeyingSetInfo_iterator_func; /* RNA_struct_find_function(&ptr, "poll"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 		/* hook up arguments */
@@ -129,12 +133,14 @@
 /* wrapper for generator callback */
 static void RKS_GEN_rna_internal(KeyingSetInfo *ksi, bContext *C, KeyingSet *ks, PointerRNA *data)
 {
+	extern FunctionRNA rna_KeyingSetInfo_generate_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(NULL, ksi->ext.srna, ksi, &ptr);
-	func= RNA_struct_find_function(&ptr, "generate");
+	func= &rna_KeyingSetInfo_generate_func; /* RNA_struct_find_generate(&ptr, "poll"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 		/* hook up arguments */

Modified: trunk/blender/source/blender/makesrna/intern/rna_render.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_render.c	2011-10-19 21:55:27 UTC (rev 41122)
+++ trunk/blender/source/blender/makesrna/intern/rna_render.c	2011-10-19 22:40:03 UTC (rev 41123)
@@ -88,12 +88,14 @@
 
 static void engine_render(RenderEngine *engine, struct Scene *scene)
 {
+	extern FunctionRNA rna_RenderEngine_render_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(NULL, engine->type->ext.srna, engine, &ptr);
-	func= RNA_struct_find_function(&ptr, "render");
+	func= &rna_RenderEngine_render_func; /* RNA_struct_find_function(&ptr, "render"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 	RNA_parameter_set_lookup(&list, "scene", &scene);

Modified: trunk/blender/source/blender/makesrna/intern/rna_ui.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_ui.c	2011-10-19 21:55:27 UTC (rev 41122)
+++ trunk/blender/source/blender/makesrna/intern/rna_ui.c	2011-10-19 22:40:03 UTC (rev 41123)
@@ -95,6 +95,8 @@
 
 static int panel_poll(const bContext *C, PanelType *pt)
 {
+	extern FunctionRNA rna_Panel_poll_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -102,7 +104,7 @@
 	int visible;
 
 	RNA_pointer_create(NULL, pt->ext.srna, NULL, &ptr); /* dummy */
-	func= RNA_struct_find_function(&ptr, "poll");
+	func= &rna_Panel_poll_func; /* RNA_struct_find_function(&ptr, "poll"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -118,12 +120,14 @@
 
 static void panel_draw(const bContext *C, Panel *pnl)
 {
+	extern FunctionRNA rna_Panel_draw_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, pnl->type->ext.srna, pnl, &ptr);
-	func= RNA_struct_find_function(&ptr, "draw");
+	func= &rna_Panel_draw_func;/* RNA_struct_find_function(&ptr, "draw"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -134,12 +138,14 @@
 
 static void panel_draw_header(const bContext *C, Panel *pnl)
 {
+	extern FunctionRNA rna_Panel_draw_header_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, pnl->type->ext.srna, pnl, &ptr);
-	func= RNA_struct_find_function(&ptr, "draw_header");
+	func= &rna_Panel_draw_header_func; /* RNA_struct_find_function(&ptr, "draw_header"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -249,12 +255,14 @@
 
 static void header_draw(const bContext *C, Header *hdr)
 {
+	extern FunctionRNA rna_Header_draw_func;
+
 	PointerRNA htr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, hdr->type->ext.srna, hdr, &htr);
-	func= RNA_struct_find_function(&htr, "draw");
+	func= &rna_Header_draw_func; /* RNA_struct_find_function(&htr, "draw"); */
 
 	RNA_parameter_list_create(&list, &htr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -347,6 +355,8 @@
 
 static int menu_poll(const bContext *C, MenuType *pt)
 {
+	extern FunctionRNA rna_Menu_poll_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -354,7 +364,7 @@
 	int visible;
 
 	RNA_pointer_create(NULL, pt->ext.srna, NULL, &ptr); /* dummy */
-	func= RNA_struct_find_function(&ptr, "poll");
+	func= &rna_Menu_poll_func; /* RNA_struct_find_function(&ptr, "poll"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -370,12 +380,14 @@
 
 static void menu_draw(const bContext *C, Menu *hdr)
 {
+	extern FunctionRNA rna_Menu_draw_func;
+
 	PointerRNA mtr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, hdr->type->ext.srna, hdr, &mtr);
-	func= RNA_struct_find_function(&mtr, "draw");
+	func= &rna_Menu_draw_func; /* RNA_struct_find_function(&mtr, "draw"); */
 
 	RNA_parameter_list_create(&list, &mtr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);

Modified: trunk/blender/source/blender/makesrna/intern/rna_wm.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_wm.c	2011-10-19 21:55:27 UTC (rev 41122)
+++ trunk/blender/source/blender/makesrna/intern/rna_wm.c	2011-10-19 22:40:03 UTC (rev 41123)
@@ -762,6 +762,8 @@
 
 static int operator_poll(bContext *C, wmOperatorType *ot)
 {
+	extern FunctionRNA rna_Operator_poll_func;
+
 	PointerRNA ptr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -769,7 +771,7 @@
 	int visible;
 
 	RNA_pointer_create(NULL, ot->ext.srna, NULL, &ptr); /* dummy */
-	func= RNA_struct_find_function(&ptr, "poll");
+	func= &rna_Operator_poll_func; /* RNA_struct_find_function(&ptr, "poll"); */
 
 	RNA_parameter_list_create(&list, &ptr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -785,6 +787,8 @@
 
 static int operator_execute(bContext *C, wmOperator *op)
 {
+	extern FunctionRNA rna_Operator_execute_func;
+
 	PointerRNA opr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -792,7 +796,7 @@
 	int result;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr);
-	func= RNA_struct_find_function(&opr, "execute");
+	func= &rna_Operator_execute_func; /* RNA_struct_find_function(&opr, "execute"); */
 
 	RNA_parameter_list_create(&list, &opr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -809,6 +813,8 @@
 /* same as execute() but no return value */
 static int operator_check(bContext *C, wmOperator *op)
 {
+	extern FunctionRNA rna_Operator_check_func;
+
 	PointerRNA opr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -816,7 +822,7 @@
 	int result;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr);
-	func= RNA_struct_find_function(&opr, "check");
+	func= &rna_Operator_check_func; /* RNA_struct_find_function(&opr, "check"); */
 
 	RNA_parameter_list_create(&list, &opr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -832,6 +838,8 @@
 
 static int operator_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
+	extern FunctionRNA rna_Operator_invoke_func;
+
 	PointerRNA opr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -839,7 +847,7 @@
 	int result;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr);
-	func= RNA_struct_find_function(&opr, "invoke");
+	func= &rna_Operator_invoke_func; /* RNA_struct_find_function(&opr, "invoke"); */
 
 	RNA_parameter_list_create(&list, &opr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -857,6 +865,8 @@
 /* same as invoke */
 static int operator_modal(bContext *C, wmOperator *op, wmEvent *event)
 {
+	extern FunctionRNA rna_Operator_modal_func;
+
 	PointerRNA opr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -864,7 +874,7 @@
 	int result;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr);
-	func= RNA_struct_find_function(&opr, "modal");
+	func= &rna_Operator_modal_func; /* RNA_struct_find_function(&opr, "modal"); */
 
 	RNA_parameter_list_create(&list, &opr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -881,12 +891,14 @@
 
 static void operator_draw(bContext *C, wmOperator *op)
 {
+	extern FunctionRNA rna_Operator_draw_func;
+
 	PointerRNA opr;
 	ParameterList list;
 	FunctionRNA *func;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr);
-	func= RNA_struct_find_function(&opr, "draw");
+	func= &rna_Operator_draw_func; /* RNA_struct_find_function(&opr, "draw"); */
 
 	RNA_parameter_list_create(&list, &opr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);
@@ -898,6 +910,8 @@
 /* same as exec(), but call cancel */
 static int operator_cancel(bContext *C, wmOperator *op)
 {
+	extern FunctionRNA rna_Operator_cancel_func;
+
 	PointerRNA opr;
 	ParameterList list;
 	FunctionRNA *func;
@@ -905,7 +919,7 @@
 	int result;
 
 	RNA_pointer_create(&CTX_wm_screen(C)->id, op->type->ext.srna, op, &opr);
-	func= RNA_struct_find_function(&opr, "cancel");
+	func= &rna_Operator_cancel_func; /* RNA_struct_find_function(&opr, "cancel"); */
 
 	RNA_parameter_list_create(&list, &opr, func);
 	RNA_parameter_set_lookup(&list, "context", &C);




More information about the Bf-blender-cvs mailing list