Il 05/07/2012 00:34, Andreas Färber ha scritto: >> > Just to clarify: replacing upcasts which are always safe >> > with downcasts which can fail is what I consider especially ugly. > As per Anthony the parent field in the QOM instance structs is not > supposed to be touched (cf. object.h). We mark it /*< private >*/ so > that it doesn't even show up in gtk-doc documentation. If it is unused, > its name becomes irrelevant and could even be "reserved" if we so > wanted. Renaming it to whatever proves that all old references are gone.
I disagree with removing static checks whenever possible. > Background is that qdev and QOM work differently with regards to > inheritance: as mentioned in the preceding patch, for qdev the parent > was (had to be) identified by name and could be anywhere in the struct; Not entirely true, being at the beginning of the struct is already enforced by using DO_UPCAST (which is admittedly a strange name for a downcast macro) instead of container_of. > for QOM the parent is a subset of the struct from the start and it's > supposed to be accessed through the struct type that provides the > fields, the usual way to get such a pointer is through > OBJECT_CHECK()-derived cast macros. Paolo