Ticket #1382 (closed RFC: fixed)
auto::alignptrs: Eliminate this config step
Reported by: | jkeenan | Owned by: | jkeenan |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | configure | Version: | trunk |
Severity: | medium | Keywords: | |
Cc: | plobsing | Language: | |
Patch status: | applied | Platform: |
Description
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.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.