[PD-dev] two patches for pd vanilla and pd-extended 0.42.5
Hans-Christoph Steiner
hans at at.or.at
Sun Nov 1 06:23:52 CET 2009
On Oct 31, 2009, at 9:12 PM, Ivica Ico Bukvic wrote:
>
>>> 2) graph on parent (GOP) enable and then immediately disable crashes
>>> patches that haven't been closed prior to disabling GOP (to
>>> reproduce,
>>> open new patch->right-click->properties->enable gop->apply->disable
>>> gop->apply->crash). This one may also affect pd vanilla (haven't
>>> checked)
>>
>> Looks good to me. Is it still present in 0.43? Submit this to the
>
> Just tested it and yes it is present in 0.43 (pd-gui-rewrite version I
> checked out less than a week ago from svn).
>
>>
>> patch tracker and assign it to Miller. Then I can accept it in Pd-
>> extended. One change, I'd do this patch like this, I think its
>> cleaner:
>>
>> Index: g_editor.c
>> ===================================================================
>> --- g_editor.c (revision 12704)
>> +++ g_editor.c (working copy)
>> @@ -907,13 +907,15 @@
>> {
>> t_gobj *y;
>> t_object *ob;
>> - if (x->gl_editor)
>> + if (x->gl_editor && x->gl_list) <---------HERE
>> {
>> for (y = x->gl_list; y; y = y->g_next)
>> if (ob = pd_checkobject(&y->g_pd))
>> rtext_free(glist_findrtext(x, ob));
>> - editor_free(x->gl_editor, x);
>> - x->gl_editor = 0;
>> + if (x->gl_editor) {
>
> I think this is superfluous, the code is already checking that in the
> previous if statement (see ASCII arrow above). The code in between the
> arrow and this if statement TTBOMK does not touch gl_editor. So, my
> vote
> would be to leave the patch as-is.
Stylistically, the format of your patch doesn't fit in with most Pd
code, the change I suggest makes the patch fit into the Pd style.
They are both functionally the same.
> However, please note another more important omission which deals with
> the other bug I reported in the follow-up email:
>
> --- g_editor_old.c 2009-10-30 22:13:16.000000000 -0400
> +++ g_editor.c 2009-10-31 14:01:29.000000000 -0400
> @@ -907,13 +907,18 @@ void canvas_destroy_editor(t_glist *x)
> {
> t_gobj *y;
> t_object *ob;
> + glist_noselect(x);
> if (x->gl_editor)
>
> It appears if noselect is not called prior to running the rest of the
> code, it crashes in deselect part. This simply deselects selected
> objects when disabling GOP. To reproduce this problem do the
> following:
>
> New patcher->create [pd something]->inside new patcher create any
> object
> (e.g. symbol) *and leave the object selected*->right-click on
> canvas->properties->enable gop->apply->disable gop->apply->crash
>
>> + editor_free(x->gl_editor, x);
>> + x->gl_editor = 0;
>> + }
>
> Obviously I would also remove the last line if you agree to remove the
> "if" statement in question.
I don't really know the ramifications of this patch, hence submitting
it to the patch tracker. But fixing crasher bugs is always good.
.hc
>
> Best wishes,
>
> Ico
>
----------------------------------------------------------------------------
You can't steal a gift. Bird gave the world his music, and if you can
hear it, you can have it. - Dizzy Gillespie
More information about the Pd-dev
mailing list