[Numpy-discussion] record descriptors: trailing unused bytes

Travis Oliphant oliphant.travis at ieee.org
Mon Sep 18 13:46:17 CDT 2006

Martin Wiechert wrote:
> Hi list,
> does anybody know, if in C in the PyArray_Descr struct it is safe to manually 
> change descr->elsize and descr->alignment as long as these are compatible and 
> descr->elsize is large enough to hold all fields? Of course I mean before any 
> array is constructed using descr.

Well, you should really make a copy of the PyArray_Descr structure and 
then fill it in as desired unless you are sure that no other arrays have 
are using that particular data-type object to describe their own data:  
PyArray_DescrNew gives you a new copy based on an old one (you just get 
a reference to the funciton pointers in the 'f' member so don't go 
changing those).

I guess your statement about "before any array is constructed using 
descr" means you are sure that there are no other arrays using the old 
elsize and alignment.

Then it should be fine.  There are not supposed to be any assumptions 
about the data-types except for what is explicitly provided in the 
data-type object (PyArray_Descr *).  So, changing them will change the 
data-type and things should ideally work.


More information about the Numpy-discussion mailing list