On Wed, 25 Aug 2004, Miller Puckette wrote:
It looks like "binbuf_addv()", which gets called many places in Pd to save objects' state, expects integer arguments of type "t_int". This is fine except on systems (athlon64 for instance) where t_int is bigger than int. In lots of the calls the int args aren't cast to t_int but are just integers.
I do not understand the problem here. It would be worse if binbuf_addv() would expect smaller integers. If it expects bigger ones, they are correctly converted.
I have been using pd for some years on a 64 bit machine, and it worked without problems. I do not know how much code was added since then, especially the gui stuff might cause problems, but fixing this should not be too much of an headache. Again, I offer to send a patch, I bet that what runs on the alpha runs on the athlon too.
Guenter
I think I should change binbuf_addv() so that integer arguments are simply "int", not "t_int". Can I do this without causing a lot of headaches for extern writers? (I think it should be OK since Pd doesn't work at all on athlon64 as it is...)
The alternative would be to use (t_int) casts everywhere, but really, the "int" argument is intended as a convenience; the data gets converted to a float anyway...
cheers Miller
PD-dev mailing list PD-dev@iem.at http://iem.at/cgi-bin/mailman/listinfo/pd-dev