office-gobmx/sal
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
..
android
cpprt
cppunittester
inc rhbz#908674: Adapt rtl::Allocator::construct to C++11 2013-02-14 15:55:09 +01:00
osl Some cppcheck cleaning 2013-02-08 22:51:59 +01:00
prj
qa
rtl/source Some cppcheck cleaning 2013-02-08 22:51:59 +01:00
systools/win32/uwinapi
test
textenc
util
workben
CppunitTest_Module_DLL.mk
CppunitTest_sal_bytesequence.mk
CppunitTest_sal_checkapi.mk
CppunitTest_sal_osl_condition.mk
CppunitTest_sal_osl_file.mk
CppunitTest_sal_osl_getsystempathfromfileurl.mk
CppunitTest_sal_osl_module.mk
CppunitTest_sal_osl_mutex.mk
CppunitTest_sal_osl_old_test_file.mk
CppunitTest_sal_osl_pipe.mk
CppunitTest_sal_osl_process.mk
CppunitTest_sal_osl_profile.mk
CppunitTest_sal_osl_security.mk
CppunitTest_sal_osl_setthreadname.mk
CppunitTest_sal_osl_thread.mk
CppunitTest_sal_rtl_alloc.mk
CppunitTest_sal_rtl_bootstrap.mk
CppunitTest_sal_rtl_cipher.mk
CppunitTest_sal_rtl_crc32.mk
CppunitTest_sal_rtl_doublelock.mk
CppunitTest_sal_rtl_locale.mk
CppunitTest_sal_rtl_math.mk
CppunitTest_sal_rtl_ostringbuffer.mk
CppunitTest_sal_rtl_oustringbuffer.mk
CppunitTest_sal_rtl_strings.mk
CppunitTest_sal_rtl_textenc.mk
CppunitTest_sal_rtl_uri.mk
CppunitTest_sal_rtl_uuid.mk
CppunitTest_sal_tcwf.mk
CppunitTest_sal_types.mk
CustomTarget_generated.mk
CustomTarget_sal_allheaders.mk
Executable_cppunittester.mk
Executable_osl_process_child.mk
Library_lo-bootstrap.mk
Library_sal.mk
Library_sal_textenc.mk
Library_uwinapi.mk
Makefile
Module_sal.mk
Package_generated.mk
Package_inc.mk
README
StaticLibrary_salcpprt.mk

System abstraction layer; rtl, osl and sal

rtl:
Platform independent strings

osl:
platform specific stuff, threads, dynamic loading, process, ipc, etc

Exports only C API and some inline-methods (only C++ API).