Commit graph

3 commits

Author SHA1 Message Date
Stephan Bergmann
c91d353872 rhbz#908674: Adapt rtl::Allocator::construct to C++11
...otherwise, at least with some --with-system-boost versions and C++11
compilers, like with Fedora's boost-1.50.0-4.fc18.x86_64 and
gcc-c++-4.7.2-8.fc18.x86_64, using this to copy-construct an instance of
boost::unordered::detail::ptr_node<std::pair<rtl::OUString,Bootstrap_Impl*>> in
the call to p_bootstrap_map->insert(...) in rtl_bootstrap_args_open
(sal/rtl/source/bootstrap.cxx) would memcopy the ptr_node and fail to call
rtl_uString_acquire, leading to memory corruption later on when
rtl_uString_release is called one time too often.

It is not entirely clear to me whether this is a shortcoming of the given Boost
version, but this patch solves the problem and brings rtl::Allocator::construct
in line with the (changed) Allocator requirements of C++11 anyway.

The problem potentially lurks with every use of rtl::Allocator, but only showed
now begining with LO 4.0 where e5111574fd "Revert
'sb140: sb140: #i116981# clean up memory upon exit'" re-introduced code into
rtl_bootstrap_args_open that inserts into a boost::unordered_map that uses
rtl::Allocator.

Change-Id: I3be22f59a8eb49d31458480c27f3ce15803c7fd4
2013-02-14 15:55:09 +01:00
Luboš Luňák
fdafe9505c fix documentation for config_xxx.h files
Not that I know why the directory had to be renamed in the first place.

Change-Id: I3e4d07591876636ae4930240ac1acc68522fb94f
2013-02-01 14:19:18 +01:00
Tor Lillqvist
c5b1441ede Use separate config_*.h files for BUILD and HOST when cross-compiling
We have only been lucky so far that there hasn't been any compilation errors
caused by using the HOST platform config_*.h files also for the BUILD
platform. But as more and more information found out during configury is
stored in config_*.h files, sooner or later it will be a problem.

Move config/* to config_host/*. When not cross-compiling, the config_*.h files
in config_host expanded from config_*.h.in are all there is. When
cross-compiling, the generated config_*.h files for the BUILD platform are
put into a config_build folder.

Then use config_build when building the cross_toolset and config_host
otherwise.

Change-Id: I3c28cc83866bffd696b45d00dfb68e00bc2ae538
2013-01-31 21:43:59 +02:00