[PD-dev] [ pure-data-Bugs-3265443 ] Pd doesn't support Win64 pointers in GUI

SourceForge.net noreply at sourceforge.net
Thu Mar 31 23:02:33 CEST 2011


Bugs item #3265443, was opened at 2011-03-31 21:02
Message generated for change (Tracker Item Submitted) made by nobody
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3265443&group_id=55736

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: Pd doesn't support Win64 pointers in GUI

Initial Comment:
Pd's GUI internals and GUI externals all do something wrong on Win64, where 64-bit pointers get cast to long, which is 32-bit, thus the pointers get truncated (aka ambiguous). This is not easily fixable in current circumstances because it means changing it not only all over Pd's source but also over the source of all externals, and they all have to be agreeing on this, to be binary-compatible. A fix might replace "%lx" by "%llx" all over pd's source but only in Win64's case. Nonstandard "%zx" (with a size_t cast) and "%tx" (with a ptrdiff_t cast) are more portable than that (as long as using glibc) because then they will do the correct thing without #ifdef.

Another more interesting fix is to get rid of having to use sys_vgui, for example by using a wrapper around sys_vgui where this kind of business would be centralised. (see desiredata's sys_mgui for one example).



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=478070&aid=3265443&group_id=55736



More information about the Pd-dev mailing list