Hi, In regard to all the static assertions, to check the sizes of the data-structures using SameSizeAs* structs, it is wrongly assumed, that sizeof (std::unique_ptr) is same as sizeof (pointer) for all compilers. Therefore, I would suggest to list them separately while computing the sizes. To give an example: In WebCore\dom\ElementRareData.cpp The structure should look like: struct SameSizeAsElementRareData : NodeRareData { short indices[2]; unsigned bitfields; RegionOversetState regionOversetState; LayoutSize sizeForResizing; IntSize scrollOffset; // CHANGE BEGINS HERE . Earlier it was :void* pointers[7]; void* pointers[4]; std::unique_ptr<DatasetDOMStringMap> pointer2; std::unique_ptr<ClassList> pointer3; std::unique_ptr<NamedNodeMap> pointer4; // CHANGE ENDS HERE }; Making the above change, works perfectly for us without throwing any compile-time assert at: static_assert(sizeof(ElementRareData) == sizeof(SameSizeAsElementRareData), "ElementRareData should stay small"); Thanks, Rupali
On which platform is the size of a unique_ptr not the same as the size as a raw pointer?
Hi Anders, We have our first party platform which uses its own fork of Clang where the sizes are different.