[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23255] trunk/blender/source/blender: Completely move freeing flag to report, operator flag is uneeded.

Campbell Barton ideasman42 at gmail.com
Wed Sep 16 03:23:24 CEST 2009


thanks. this fixes the crash I was having.

On Tue, Sep 15, 2009 at 9:25 AM, Martin Poirier <theeth at yahoo.com> wrote:
> Revision: 23255
>          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23255
> Author:   theeth
> Date:     2009-09-15 18:25:53 +0200 (Tue, 15 Sep 2009)
>
> Log Message:
> -----------
> Completely move freeing flag to report, operator flag is uneeded.
>
> Also bugfix for py operators. Reports need to be kept alive when operator is registered.
>
> Modified Paths:
> --------------
>    trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
>    trunk/blender/source/blender/windowmanager/intern/wm.c
>    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
>
> Modified: trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
> ===================================================================
> --- trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h     2009-09-15 16:05:59 UTC (rev 23254)
> +++ trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h     2009-09-15 16:25:53 UTC (rev 23255)
> @@ -298,7 +298,6 @@
>  #define OPERATOR_PASS_THROUGH  8
>
>  /* wmOperator flag */
> -#define OPERATOR_REPORT_FREE   1
>
>
>  /* ************** wmEvent ************************ */
>
> Modified: trunk/blender/source/blender/windowmanager/intern/wm.c
> ===================================================================
> --- trunk/blender/source/blender/windowmanager/intern/wm.c      2009-09-15 16:05:59 UTC (rev 23254)
> +++ trunk/blender/source/blender/windowmanager/intern/wm.c      2009-09-15 16:25:53 UTC (rev 23255)
> @@ -69,7 +69,7 @@
>                MEM_freeN(op->properties);
>        }
>
> -       if(op->reports && ((op->flag & OPERATOR_REPORT_FREE) || (op->reports->flag & RPT_FREE))) {
> +       if(op->reports && (op->reports->flag & RPT_FREE)) {
>                BKE_reports_clear(op->reports);
>                MEM_freeN(op->reports);
>        }
>
> Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
> ===================================================================
> --- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2009-09-15 16:05:59 UTC (rev 23254)
> +++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2009-09-15 16:25:53 UTC (rev 23255)
> @@ -349,8 +349,7 @@
>        }
>        else {
>                op->reports= MEM_mallocN(sizeof(ReportList), "wmOperatorReportList");
> -               BKE_reports_init(op->reports, RPT_STORE);
> -               op->flag |= OPERATOR_REPORT_FREE;
> +               BKE_reports_init(op->reports, RPT_STORE|RPT_FREE);
>        }
>
>        /* recursive filling of operator macro list */
> @@ -555,7 +554,8 @@
>
>        retval= wm_operator_call_internal(C, ot, context, properties, reports);
>
> -       if (retval & OPERATOR_RUNNING_MODAL)
> +       /* keep the reports around if needed later */
> +       if (retval & OPERATOR_RUNNING_MODAL || ot->flag & OPTYPE_REGISTER)
>        {
>                reports->flag |= RPT_FREE;
>        }
>
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>



-- 
- Campbell


More information about the Bf-committers mailing list