[PD-dev] pointers

Mathieu Bouchard matju at artengine.ca
Sat Jun 23 13:46:54 CEST 2007


GEM, PDP, GridFlow, all use fake pointers. That is, pd defines A_POINTER 
as being a t_gpointer * and all of the above externals disregard this 
completely and send something else. It's because pd provides no other 
sensible means to send a pointer.

Older versions of GridFlow were sending a pointer as 2 floats of integer 
value, and I was going to make it 3 floats when beginning to support 
64-bit, but thought that although misusing A_POINTER was more evil in my 
book, at least it's being done with passing only one atom around, and I'm 
also happy to be doing the same evil as everybody else too.

(I could have tried a plain reinterpret_cast<> so that it'd be 1 float in 
32-bit or 2 floats in 64-bit, but I didn't want to think of the special 
float values such as +0, -0, +inf, -inf, NaN, denormals, and anything 
else. It could've been fine, but I didn't want to have to think about it.)

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada


More information about the Pd-dev mailing list