Subject: [Boost-bugs] [Boost C++ Libraries] #10353: Interprocess: rbtree_best_fit ABI change from 1.53 to 1.55
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-08-13 20:40:23
#10353: Interprocess: rbtree_best_fit ABI change from 1.53 to 1.55
------------------------------+------------------------------
Reporter: Terence.Darwen@⦠| Type: Bugs
Status: new | Milestone: To Be Determined
Component: None | Version: Boost 1.55.0
Severity: Problem | Keywords:
------------------------------+------------------------------
I have an issue that seems to be identical to the issue discussed in this
thread on the Boost List: http://lists.boost.org/boost-
users/2014/01/81159.php
Basically, it seems the size of the Imultiset member in header_t of
rbtree_best_fit.hpp has changed between Boost 1.53 and Boost 1.55. As
mentioned in the thread from the Boost List:
>>
boost::interprocess::rbtree_best_fit<boost::interprocess::null_mutex_family,boost::interprocess::offset_ptr<void,__int64,unsigned
__int64,0>,0>
>>
>> has size = 56
>> member m_header.m_imultiset has size 32
>>
>> In code compiled with boost 1.55:
>>
>> the same type has size = 72
>> member m_header.m_imultiset has size 48
>
>
>Wow, that's too big. I think this is related with MSVC Empty Base
>Implementation behaviour. I refactored those classes to avoid redundant
>simple forwarding functions using inheritance and that broke this for
>MSVC compilers. I should add some checks for 32 and 64 bit compilers to
>guarantee the minimum size (16 bytes in 32 bit and 32 bytes in 64 bit).
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/10353> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:16 UTC