<div class="markdown_content"><hr/>
<p><strong> <a class="alink" href="https://sourceforge.net/p/pure-data/bugs/1255/">[bugs:#1255]</a> comment stopped working on vanila 0.47 32 bits</strong></p>
<p><strong>Status:</strong> open<br/>
<strong>Group:</strong> v0.47<br/>
<strong>Created:</strong> Wed Jul 06, 2016 07:50 PM UTC by Anonymous<br/>
<strong>Last Updated:</strong> Wed Jul 06, 2016 07:50 PM UTC<br/>
<strong>Owner:</strong> Miller Puckette</p>
<p>howdy, as I've already reported in an earlier ticket, the new vanilla broke backwards compatibility with cyclone/comment. Matt Barber seems to have found the issue with the new code, on his words:</p>
<p>"Take a look at the following code.</p>
<p>====================================<br/>
comment.c, line 316:</p>
<div class="codehilite"><pre>if (!glist->gl_havewindow)
</pre></div>


<p>====================================</p>
<p>===================================================<br/>
Pd 0.47, g_canvas.h:</p>
<p>struct _glist<br/>
{<br/>
    t_object gl_obj;            /<em> header in case we're a glist </em>/<br/>
    t_gobj <em>gl_list;            /</em> the actual data <em>/<br/>
    struct _gstub </em>gl_stub;     /<em> safe pointer handler </em>/<br/>
    int gl_valid;               /<em> incremented when pointers might be stale </em>/<br/>
    struct _glist <em>gl_owner;    /</em> parent glist, supercanvas, or 0 if none <em>/<br/>
    int gl_pixwidth;            /</em> width in pixels (on parent, if a graph) <em>/<br/>
    int gl_pixheight;<br/>
    t_float gl_x1;                /</em> bounding rectangle in our own coordinates <em>/<br/>
    t_float gl_y1;<br/>
    t_float gl_x2;<br/>
    t_float gl_y2;<br/>
    int gl_screenx1;            /</em> screen coordinates when toplevel <em>/<br/>
    int gl_screeny1;<br/>
    int gl_screenx2;<br/>
    int gl_screeny2;<br/>
    int gl_xmargin;                /</em> origin for GOP rectangle <em>/<br/>
    int gl_ymargin;<br/>
    t_tick gl_xtick;            /</em> ticks marking X values <em>/<br/>
    int gl_nxlabels;            /</em> number of X coordinate labels <em>/<br/>
    t_symbol <strong>gl_xlabel;           /<em> ... an array to hold them </em>/<br/>
    t_float gl_xlabely;               /<em> ... and their Y coordinates </em>/<br/>
    t_tick gl_ytick;            /<em> same as above for Y ticks and labels </em>/<br/>
    int gl_nylabels;<br/>
    t_symbol </strong>gl_ylabel;<br/>
    t_float gl_ylabelx;<br/>
    t_editor </em>gl_editor;        /<em> editor structure when visible </em>/<br/>
    t_symbol <em>gl_name;          /</em> symbol bound here <em>/<br/>
    int gl_font;                /</em> nominal font size in points, e.g., 10 <em>/<br/>
    int gl_zoom;                /</em> zoom factor (integer zoom-in only) <em>/<br/>
    struct _glist </em>gl_next;         /<em> link in list of toplevels </em>/<br/>
    t_canvasenvironment <em>gl_env;    /</em> root canvases and abstractions only <em>/<br/>
    unsigned int gl_havewindow:1;   /</em> true if we own a window <em>/<br/>
    unsigned int gl_mapped:1;       /</em> true if, moreover, it's "mapped" <em>/<br/>
    unsigned int gl_dirty:1;        /</em> (root canvas only:) patch has changed <em>/<br/>
    unsigned int gl_loading:1;      /</em> am now loading from file <em>/<br/>
    unsigned int gl_willvis:1;      /</em> make me visible after loading <em>/<br/>
    unsigned int gl_edit:1;         /</em> edit mode <em>/<br/>
    unsigned int gl_isdeleting:1;   /</em> we're inside glist_delete -- hack! <em>/<br/>
    unsigned int gl_goprect:1;      /</em> draw rectangle for graph-on-parent <em>/<br/>
    unsigned int gl_isgraph:1;      /</em> show as graph on parent <em>/<br/>
    unsigned int gl_hidetext:1;     /</em> hide object-name + args when doing graph on parent <em>/<br/>
    unsigned int gl_private:1;      /</em> private flag used in x_scalar.c <em>/<br/>
    unsigned int gl_isclone:1;      /</em> esists as part of a clone object */<br/>
};<br/>
===========================================================</p>
<p>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).</p>
<p>The fix will simply be to move the gl_zoom member to the end of the _glist declaration.</p>
<p>Matt"</p>
<hr/>
<p>Sent from sourceforge.net because pd-dev@lists.iem.at is subscribed to <a href="https://sourceforge.net/p/pure-data/bugs/">https://sourceforge.net/p/pure-data/bugs/</a></p>
<p>To unsubscribe from further messages, a project admin can change settings at <a href="https://sourceforge.net/p/pure-data/admin/bugs/options.">https://sourceforge.net/p/pure-data/admin/bugs/options.</a>  Or, if this is a mailing list, you can unsubscribe from the mailing list.</p></div>