[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24867] trunk/blender/source/blender: avoid operator type lookups when its known

Campbell Barton ideasman42 at gmail.com
Tue Nov 24 17:19:15 CET 2009


Revision: 24867
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24867
Author:   campbellbarton
Date:     2009-11-24 17:19:15 +0100 (Tue, 24 Nov 2009)

Log Message:
-----------
avoid operator type lookups when its known

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface.c
    trunk/blender/source/blender/python/intern/bpy_operator.c
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2009-11-24 15:45:45 UTC (rev 24866)
+++ trunk/blender/source/blender/editors/interface/interface.c	2009-11-24 16:19:15 UTC (rev 24867)
@@ -2963,7 +2963,7 @@
 {
 	if(but->optype && !but->opptr) {
 		but->opptr= MEM_callocN(sizeof(PointerRNA), "uiButOpPtr");
-		WM_operator_properties_create(but->opptr, but->optype->idname);
+		WM_operator_properties_create_ptr(but->opptr, but->optype);
 	}
 
 	return but->opptr;

Modified: trunk/blender/source/blender/python/intern/bpy_operator.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_operator.c	2009-11-24 15:45:45 UTC (rev 24866)
+++ trunk/blender/source/blender/python/intern/bpy_operator.c	2009-11-24 16:19:15 UTC (rev 24867)
@@ -230,7 +230,9 @@
 	//RNA_pointer_create(NULL, &RNA_Struct, ot->srna, &ptr);
 
 	/* XXX - should call WM_operator_properties_free */
-	WM_operator_properties_create(&ptr, ot->idname);
+	WM_operator_properties_create_ptr(&ptr, ot);
+
+	
 	pyrna= (BPy_StructRNA *)pyrna_struct_CreatePyObject(&ptr);
 	pyrna->freeptr= TRUE;
 	return (PyObject *)pyrna;

Modified: trunk/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_api.h	2009-11-24 15:45:45 UTC (rev 24866)
+++ trunk/blender/source/blender/windowmanager/WM_api.h	2009-11-24 16:19:15 UTC (rev 24867)
@@ -193,6 +193,7 @@
 
 void		WM_operator_properties_alloc(struct PointerRNA **ptr, struct IDProperty **properties, const char *opstring); /* used for keymap and macro items */
 void		WM_operator_properties_create(struct PointerRNA *ptr, const char *opstring);
+void		WM_operator_properties_create_ptr(struct PointerRNA *ptr, struct wmOperatorType *ot);
 void		WM_operator_properties_free(struct PointerRNA *ptr);
 void		WM_operator_properties_filesel(struct wmOperatorType *ot, int filter, short type);
 void		WM_operator_properties_gesture_border(wmOperatorType *ot, int extend);

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2009-11-24 15:45:45 UTC (rev 24866)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2009-11-24 16:19:15 UTC (rev 24867)
@@ -466,7 +466,7 @@
 	PropertyRNA *prop_default;
 	char *buf_default;
 	if(!all_args) {
-		WM_operator_properties_create(&opptr_default, ot->idname);
+		WM_operator_properties_create_ptr(&opptr_default, ot);
 	}
 
 
@@ -520,12 +520,17 @@
 	return cstring;
 }
 
+void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
+{
+	RNA_pointer_create(NULL, ot->srna, NULL, ptr);
+}
+
 void WM_operator_properties_create(PointerRNA *ptr, const char *opstring)
 {
 	wmOperatorType *ot= WM_operatortype_find(opstring, 0);
 
 	if(ot)
-		RNA_pointer_create(NULL, ot->srna, NULL, ptr);
+		WM_operator_properties_create_ptr(ptr, ot);
 	else
 		RNA_pointer_create(NULL, &RNA_OperatorProperties, NULL, ptr);
 }





More information about the Bf-blender-cvs mailing list