Commit: 0d428c674ac69208639e0c251e434ecc3e9ec261
Author: Campbell Barton
Date:   Mon Jun 5 17:57:57 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB0d428c674ac69208639e0c251e434ecc3e9ec261

WM: de-duplicate operator append code

WM_operatortype_append(_ptr) functions had diverged.

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

M       source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/source/blender/windowmanager/intern/wm_operators.c 
b/source/blender/windowmanager/intern/wm_operators.c
index 3665b6f2c12..429e35c7043 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -158,18 +158,20 @@ void WM_operatortype_iter(GHashIterator *ghi)
        BLI_ghashIterator_init(ghi, global_ops_hash);
 }
 
-/* all ops in 1 list (for time being... needs evaluation later) */
-void WM_operatortype_append(void (*opfunc)(wmOperatorType *))
+/** \name Operator Type Append
+ * \{ */
+
+static wmOperatorType *wm_operatortype_append__begin(void)
 {
-       wmOperatorType *ot;
-       
-       ot = MEM_callocN(sizeof(wmOperatorType), "operatortype");
+       wmOperatorType *ot = MEM_callocN(sizeof(wmOperatorType), 
"operatortype");
        ot->srna = RNA_def_struct_ptr(&BLENDER_RNA, "", 
&RNA_OperatorProperties);
        /* Set the default i18n context now, so that opfunc can redefine it if 
needed! */
        RNA_def_struct_translation_context(ot->srna, 
BLT_I18NCONTEXT_OPERATOR_DEFAULT);
        ot->translation_context = BLT_I18NCONTEXT_OPERATOR_DEFAULT;
-       opfunc(ot);
-
+       return ot;
+}
+static void wm_operatortype_append__end(wmOperatorType *ot)
+{
        if (ot->name == NULL) {
                fprintf(stderr, "ERROR: Operator %s has no name property!\n", 
ot->idname);
                ot->name = N_("Dummy Name");
@@ -186,22 +188,23 @@ void WM_operatortype_append(void (*opfunc)(wmOperatorType 
*))
        BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot);
 }
 
-void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType *, void *), void 
*userdata)
+/* all ops in 1 list (for time being... needs evaluation later) */
+void WM_operatortype_append(void (*opfunc)(wmOperatorType *))
 {
-       wmOperatorType *ot;
+       wmOperatorType *ot = wm_operatortype_append__begin();
+       opfunc(ot);
+       wm_operatortype_append__end(ot);
+}
 
-       ot = MEM_callocN(sizeof(wmOperatorType), "operatortype");
-       ot->srna = RNA_def_struct_ptr(&BLENDER_RNA, "", 
&RNA_OperatorProperties);
-       /* Set the default i18n context now, so that opfunc can redefine it if 
needed! */
-       RNA_def_struct_translation_context(ot->srna, 
BLT_I18NCONTEXT_OPERATOR_DEFAULT);
-       ot->translation_context = BLT_I18NCONTEXT_OPERATOR_DEFAULT;
+void WM_operatortype_append_ptr(void (*opfunc)(wmOperatorType *, void *), void 
*userdata)
+{
+       wmOperatorType *ot = wm_operatortype_append__begin();
        opfunc(ot, userdata);
-       RNA_def_struct_ui_text(ot->srna, ot->name, ot->description ? 
ot->description : UNDOCUMENTED_OPERATOR_TIP);
-       RNA_def_struct_identifier(ot->srna, ot->idname);
-
-       BLI_ghash_insert(global_ops_hash, (void *)ot->idname, ot);
+       wm_operatortype_append__end(ot);
 }
 
+/** \} */
+
 /* ********************* macro operator ******************** */
 
 typedef struct {

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to