[PD] [cyclone/comment] stopped working on pd 0.47-0 32 bits

Matt Barber brbrofsvl at gmail.com
Fri Jul 1 02:57:07 CEST 2016


I may have found the answer to this. Take a look at the following code.

====================================
comment.c, line 316:

    if (!glist->gl_havewindow)
====================================

===================================================
Pd 0.47, g_canvas.h:

struct _glist
{
    t_object gl_obj;            /* header in case we're a glist */
    t_gobj *gl_list;            /* the actual data */
    struct _gstub *gl_stub;     /* safe pointer handler */
    int gl_valid;               /* incremented when pointers might be stale
*/
    struct _glist *gl_owner;    /* parent glist, supercanvas, or 0 if none
*/
    int gl_pixwidth;            /* width in pixels (on parent, if a graph)
*/
    int gl_pixheight;
    t_float gl_x1;                /* bounding rectangle in our own
coordinates */
    t_float gl_y1;
    t_float gl_x2;
    t_float gl_y2;
    int gl_screenx1;            /* screen coordinates when toplevel */
    int gl_screeny1;
    int gl_screenx2;
    int gl_screeny2;
    int gl_xmargin;                /* origin for GOP rectangle */
    int gl_ymargin;
    t_tick gl_xtick;            /* ticks marking X values */
    int gl_nxlabels;            /* number of X coordinate labels */
    t_symbol **gl_xlabel;           /* ... an array to hold them */
    t_float gl_xlabely;               /* ... and their Y coordinates */
    t_tick gl_ytick;            /* same as above for Y ticks and labels */
    int gl_nylabels;
    t_symbol **gl_ylabel;
    t_float gl_ylabelx;
    t_editor *gl_editor;        /* editor structure when visible */
    t_symbol *gl_name;          /* symbol bound here */
    int gl_font;                /* nominal font size in points, e.g., 10 */
*    int gl_zoom;                /* zoom factor (integer zoom-in only) */*
    struct _glist *gl_next;         /* link in list of toplevels */
    t_canvasenvironment *gl_env;    /* root canvases and abstractions only
*/
*    unsigned int gl_havewindow:1;   /* true if we own a window */*
    unsigned int gl_mapped:1;       /* true if, moreover, it's "mapped" */
    unsigned int gl_dirty:1;        /* (root canvas only:) patch has
changed */
    unsigned int gl_loading:1;      /* am now loading from file */
    unsigned int gl_willvis:1;      /* make me visible after loading */
    unsigned int gl_edit:1;         /* edit mode */
    unsigned int gl_isdeleting:1;   /* we're inside glist_delete -- hack! */
    unsigned int gl_goprect:1;      /* draw rectangle for graph-on-parent */
    unsigned int gl_isgraph:1;      /* show as graph on parent */
    unsigned int gl_hidetext:1;     /* hide object-name + args when doing
graph on parent */
    unsigned int gl_private:1;      /* private flag used in x_scalar.c */
    unsigned int gl_isclone:1;      /* esists as part of a clone object */
};
===========================================================

The new gl_zoom member comes before a few of the old members, so if you try
to load the library in a version it wasn't compiled against, anything after
gl_zoom will be garbage (not sure why it works in 0.47 64 bit, but it may
be accessing some misaligned bytes that just happen to work out).

The fix will simply be to move the gl_zoom member to the end of the _glist
declaration.

Matt




On Sun, May 22, 2016 at 12:23 PM, Alexandre Torres Porres <porres at gmail.com>
wrote:

> howdy, [cyclone/comment] from latest available version in deken (0.2
> beta-1) works on:
>
> Pd Extended 0.42-5
>
> Pd Vanilla 0.46-7 32 bits
> Pd Vanilla 0.46-7 64 bits
>
> Pd Vanilla 0.47-0 64 bits
>
> but it does not work on pd 0.47-0 32 bits - simply nothing (no comments)
> show up
>
> Though I'm working on cyclone, I haven't touched this object yet, I was
> just testing them all in the new version to see if they load (maybe I'll
> find more issues?). Anyway, this seems to me more of an issue related to
> the new pd update than the code itself, potentially affecting other
> codes/objects. So I'm writing this list to see what we can find that
> changed in the new version that would collaborate to this.
>
> code attached
>
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20160630/fc15c5b0/attachment.html>


More information about the Pd-list mailing list