diff --git a/xpcom/typelib/xpt/public/xpt_struct.h b/xpcom/typelib/xpt/public/xpt_struct.h index e4eaaa6af720..f71e90e6c86b 100644 --- a/xpcom/typelib/xpt/public/xpt_struct.h +++ b/xpcom/typelib/xpt/public/xpt_struct.h @@ -206,11 +206,16 @@ XPT_DestroyInterfaceDirectoryEntry(XPTArena *arena, * single XPCOM interface, including all of its methods. */ struct XPTInterfaceDescriptor { + /* This field ordering minimizes the size of this struct. + * The fields are serialized on disk in a different order. + * See DoInterfaceDescriptor(). + */ + XPTMethodDescriptor *method_descriptors; + XPTConstDescriptor *const_descriptors; + XPTTypeDescriptor *additional_types; uint16_t parent_interface; uint16_t num_methods; - XPTMethodDescriptor *method_descriptors; uint16_t num_constants; - XPTConstDescriptor *const_descriptors; uint8_t flags; /* additional_types are used for arrays where we may need multiple @@ -229,7 +234,6 @@ struct XPTInterfaceDescriptor { * for that. */ - XPTTypeDescriptor *additional_types; uint16_t num_additional_types; };