id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	lang	patch	platform
1382	auto::alignptrs:   Eliminate this config step	jkeenan	jkeenan	"In TT #498, Andy Dougherty noted that the result of configuration step `auto::alignptrs` is used in only two `PARROT_ASSERT` statements in ''src/pmc/unmanagedstruct.pmc'':
{{{
 127 static char * 
 128 char_offset_key(PARROT_INTERP, PMC *pmc, PMC *key, int *type) 
 129 {
 ...
 186             if (*type == enum_type_struct_ptr) {
 187                 /* that is either a pointer */
 188                 PARROT_ASSERT((PTR2INTVAL(p) & (PARROT_PTR_ALIGNMENT - 1)) ==      0);
 189                 VTABLE_set_pointer(interp, init, *(void**)p);
 190             }
 ...
 196         else if (init->vtable->base_type == enum_class_ManagedStruct
 197              && *type                    == enum_type_struct_ptr) {
 198             /* a nested struct pointer belonging to us
 199              * p is the location of the struct pointer in the
 200              * outer struct, the inner is at PMC_data(init) */
 201 
 202             PARROT_ASSERT((PTR2INTVAL(p) & (PARROT_PTR_ALIGNMENT - 1)) == 0);
 203             *(void **)p = VTABLE_get_pointer(interp, init);
 204         }
 205 
 206         return char_offset_key(interp, init, next, type);
 207     }
}}}
So tonight I created the `noalignptrs` branch to see what would happen if we did indeed eliminate this step.  So far, it has built and passed `make test`."	RFC	closed	normal		configure	trunk	medium	fixed		plobsing		applied	
