Currently the tracer uses the Traits::m_slotDestroyInfo data structure to know which slots to scan. However, that data structure is partial: it does not contain information about slots in native classes. As a consequence, each native class must override gcTrace(), call the generated trace function in the native-slots structure, then call up to its base class, and so on. If the destroyInfo contained information about all slots we could potentially avoid generating any tracer functions for the native slots. This might save us a little code size, and - depending on code generation - save us some time.
If we use destroy info to clean up we need to make sure the smart pointer write barrier decls on the generated slots go away and we go back to naked decls with manual write barriers so we don't do double clean up duty.
Priority: -- → P4
Target Milestone: --- → flash10.x-Serrano
Priority: P4 → P3
Target Milestone: Q3 11 - Serrano → Q1 12 - Brannan
You need to log in before you can comment on or make changes to this bug.