Building recent master, at least on Fedora 18 with --enable-dbgutil, fails in various tests due to problems in mdds headers, likely since <http://cgit.freedesktop.org/libreoffice/core/commit/?id=9785579ed0ec8e2e3e826c7e4cbbcaf51f8cb0d4> "Update mdds to 0.8.1."

I came up with the attached quick-hack workaround for the first problem encountered, but only to run into the next problem below in JunitTest_sc_unoapi soon after, so gave up.

Kohei, please fix these problems.

Stephan


/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/debug/safe_iterator.h:493:
    error: attempt to compare iterators from different sequences.

Objects involved in the operation:
iterator "lhs" @ 0x0x2aaad88af368 {
type = 
N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPPN4mdds17multi_type_vectorINS3_3mtv18custom_block_func1ILi51ENS5_21default_element_blockILi51EN2sc12CellTextAttrEEEEEE5blockENSt9__cxx19986vectorISE_SaISE_EEEEENSt7__debug6vectorISE_SI_EEEE
 (mutable iterator);
  state = past-the-end;
  references sequence with type 
`NSt7__debug6vectorIPN4mdds17multi_type_vectorINS1_3mtv18custom_block_func1ILi51ENS3_21default_element_blockILi51EN2sc12CellTextAttrEEEEEE5blockESaISC_EEE'
 @ 0x0x2aaad88af368
}
iterator "rhs" @ 0x0x2aaacca5b3b0 {
type = 
N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPKPN4mdds17multi_type_vectorINS3_3mtv18custom_block_func1ILi51ENS5_21default_element_blockILi51EN2sc12CellTextAttrEEEEEE5blockENSt9__cxx19986vectorISE_SaISE_EEEEENSt7__debug6vectorISE_SJ_EEEE
 (constant iterator);
  state = past-the-end;
  references sequence with type 
`NSt7__debug6vectorIPN4mdds17multi_type_vectorINS1_3mtv18custom_block_func1ILi51ENS3_21default_element_blockILi51EN2sc12CellTextAttrEEEEEE5blockESaISC_EEE'
 @ 0x0x2aaacca5b3b0
}

#13 <signal handler called>
#14 0x0000003c80635ba5 in __GI_raise (sig=sig@entry=6) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:63
#15 0x0000003c80637358 in __GI_abort () at abort.c:90
#16 0x0000003c82eb193d in __gnu_debug::_Error_formatter::_M_error 
(this=0x2aaacca5b120) at ../../../../../libstdc++-v3/src/c++11/debug.cc:777
#17 0x00002aaacd327a87 in __gnu_debug::operator==<__gnu_cxx::__normal_iterator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::block**, 
std::__cxx1998::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::block*, 
std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::block*> > >, 
__gnu_cxx::__normal_iterator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::block* const*, 
std::__cxx1998::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::block*, 
std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::block*> > >, std::__debug::vector<mdds::mu!
lti_type_v
ector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::block*, 
std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, mdds::mtv::default_element_block<51, 
sc::CellTextAttr> > >::block*> > > (__lhs=, __rhs=) at 
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/debug/safe_iterator.h:490
#18 0x00002aaacd322697 in mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, 
mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::get_block_position 
(this=0x2aaad87abbb0, pos_hint=..., pos=0, start_row=@0x2aaacca5b448: 0, 
block_index=@0x2aaacca5b440: 0) at 
workdir/unxlngx6/UnpackedTarball/mdds/include/mdds/multi_type_vector_def.inl:507
#19 0x00002aaacd31da97 in mdds::multi_type_vector<mdds::mtv::custom_block_func1<51, 
mdds::mtv::default_element_block<51, sc::CellTextAttr> > >::set<sc::CellTextAttr> 
(this=0x2aaad87abbb0, pos_hint=..., pos=0, value=...) at 
workdir/unxlngx6/UnpackedTarball/mdds/include/mdds/multi_type_vector_def.inl:209
#20 0x00002aaacd317da7 in ScColumn::SetCell (this=0x2aaad87abbb0, 
rBlockPos=..., nRow=0, pNewCell=0x2aaafa5c91d0) at 
sc/source/core/data/column2.cxx:1508
#21 0x00002aaacd333aa0 in ScColumn::Insert (this=0x2aaad87abbb0, rBlockPos=..., 
nRow=0, pNewCell=0x2aaafa5c91d0) at sc/source/core/data/column3.cxx:83
#22 0x00002aaacd29bc02 in ScColumn::CopyToColumn (this=0x2aab64078cf0, 
rCxt=..., nRow1=0, nRow2=3, nFlags=255, bMarked=false, rColumn=..., 
pMarkData=0x2aaacca5c010, bAsLink=false) at sc/source/core/data/column.cxx:1466
#23 0x00002aaacd29b6db in ScColumn::CopyToColumn (this=0x2aab64078cf0, 
rCxt=..., nRow1=0, nRow2=1048575, nFlags=255, bMarked=true, rColumn=..., 
pMarkData=0x2aaacca5c010, bAsLink=false) at sc/source/core/data/column.cxx:1386
#24 0x00002aaacd5a8ec8 in ScTable::CopyToTable (this=0x2aab64078a60, rCxt=..., 
nCol1=0, nRow1=0, nCol2=1023, nRow2=1048575, nFlags=255, bMarked=true, 
pDestTab=0x2aaad87ab920, pMarkData=0x2aaacca5c010, bAsLink=false, 
bColRowFlags=true) at sc/source/core/data/table2.cxx:1035
#25 0x00002aaacd38df9e in ScDocument::CopyTab (this=0x2aab6404a098, nOldPos=0, 
nNewPos=1, pOnlyMarked=0x2aaacca5c010) at sc/source/core/data/documen2.cxx:862
#26 0x00002aaacda5c4a4 in ScDocShell::MakeScenario (this=0x2aab64049fa0, nTab=0, 
rName="ScScenarios", rComment="Range", rColor=rgb(192, 192, 192), nFlags=78, 
rMark=..., bRecord=1 '\001') at sc/source/ui/docshell/docsh5.cxx:768
#27 0x00002aaacdc9b003 in ScScenariosObj::addNewByName (this=0x2aab13185a98, 
aName="ScScenarios", aRanges=uno::Sequence of length 1 = {...}, 
aComment="Range") at sc/source/ui/unoobj/docuno.cxx:3627
#28 0x00002aaabca937e6 in gcc3::callVirtualMethod(void*, unsigned int, void*, 
_typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, 
unsigned long*, unsigned int, double*, unsigned int) () from 
solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so
#29 0x00002aaabca926c0 in cpp_call (pThis=0x2aab640fc740, aVtableSlot=..., 
pReturnTypeRef=0x2521330, nParams=3, pParams=0x2aaad4018e50, pUnoReturn=0x0, 
pUnoArgs=0x2aaad8848da0, ppUnoExc=0x2aaacca5c6a8) at 
bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:237
#30 0x00002aaabca93203 in bridges::cpp_uno::shared::unoInterfaceProxyDispatch 
(pUnoI=0x2aab640fc740, pMemberDescr=0x2aaad400e410, pReturn=0x0, 
pArgs=0x2aaad8848da0, ppException=0x2aaacca5c6a8) at 
bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:430
#31 0x00002aaabe17215f in binaryurp::IncomingRequest::execute_throw 
(this=0x2aaad4019680, returnValue=0x2aaacca5cb10, outArguments=0x2aaacca5ca80) 
at binaryurp/source/incomingrequest.cxx:245
#32 0x00002aaabe17102f in binaryurp::IncomingRequest::execute 
(this=0x2aaad4019680) at binaryurp/source/incomingrequest.cxx:74
#33 0x00002aaabe18c3f1 in binaryurp::(anonymous namespace)::request 
(pThreadSpecificData=0x2aaad4019680) at binaryurp/source/reader.cxx:87
#34 0x00002aaaab53e286 in cppu_threadpool::JobQueue::enter 
(this=0x2aaad4017c80, nDisposeId=46913189681136, bReturnWhenNoJob=1 '\001') at 
cppu/source/threadpool/jobqueue.cxx:115
#35 0x00002aaaab541b7d in cppu_threadpool::ORequestThread::run 
(this=0x2aaad40197f0) at cppu/source/threadpool/thread.cxx:172
#36 0x00002aaaab542363 in osl::threadFunc (param=0x2aaad4019800) at 
include/osl/thread.hxx:187
#37 0x00002aaaaaac85fb in osl_thread_start_Impl (pData=0x2aaad40055e0) at 
sal/osl/unx/thread.c:251
#38 0x0000003c80a07d15 in start_thread (arg=0x2aaacca5d700) at 
pthread_create.c:308
#39 0x0000003c806f246d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:114
From ed608ac5e434d017340adbda6aab5d13b1ae3615 Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <[email protected]>
Date: Tue, 21 May 2013 10:46:36 +0200
Subject: [PATCH] Work around mdds singular iterator problem

At least --enable-dbgutil "make make CppunitTest_sc_filters_test" fails as
below, for which this commit is a workaround for now (TODO: but not a proper
fix).

/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/debug/safe_iterator.h:187:
    error: attempt to copy-construct an iterator from a singular iterator.

Objects involved in the operation:
iterator "this" @ 0x0x7fff5a724400 {
type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPPN4mdds17multi_type_vectorINS3_3mtv18custom_block_func1ILi50ENS5_33noncopyable_managed_element_blockILi50E14SvtBroadcasterEEEEE5blockENSt9__cxx19986vectorISD_SaISD_EEEEENSt7__debug6vectorISD_SH_EEEE (mutable iterator);
  state = singular;
}
iterator "other" @ 0x0x7fff5a724668 {
type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPPN4mdds17multi_type_vectorINS3_3mtv18custom_block_func1ILi50ENS5_33noncopyable_managed_element_blockILi50E14SvtBroadcasterEEEEE5blockENSt9__cxx19986vectorISD_SaISD_EEEEENSt7__debug6vectorISD_SH_EEEE (mutable iterator);
  state = singular;
  references sequence with type `NSt7__debug6vectorIPN4mdds17multi_type_vectorINS1_3mtv18custom_block_func1ILi50ENS3_33noncopyable_managed_element_blockILi50E14SvtBroadcasterEEEEE5blockESaISB_EEE' @ 0x0x7fff5a724668
}

4  <signal handler called>
5  0x0000003c80635ba5 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:63
6  0x0000003c80637358 in __GI_abort () at abort.c:90
7  0x0000003c82eb193d in __gnu_debug::_Error_formatter::_M_error (this=0x7fff5a7241a0) at ../../../../../libstdc++-v3/src/c++11/debug.cc:777
8  0x00002aaab8ccc5c9 in __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block**, std::__cxx1998::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*, std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*> > >, std::__debug::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*, std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*> > >::_Safe_iterator(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block**, std::__cxx1998::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*, std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*> > >, std::__debug::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*, std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*> > >&&) (this=0x7fff5a724400, __x=<unknown type in solver/unxlngx6/lib/libsclo.so, CU 0x34850b, DIE 0x40fd17>) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/debug/safe_iterator.h:183
9  0x00002aaab8d1d7e5 in std::swap<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block**, std::__cxx1998::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*, std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*> > >, std::__debug::vector<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*, std::allocator<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::block*> > > > (__a=, __b=) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/move.h:176
10 0x00002aaab8d17ad2 in mdds::__mtv::iterator_common_base<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::iterator_trait>::swap (this=0x7fff5a724640, other=...) at workdir/unxlngx6/UnpackedTarball/mdds/include/mdds/multi_type_vector_itr.hpp:227
11 0x00002aaab8d0bb7e in mdds::__mtv::iterator_common_base<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::iterator_trait>::operator= (this=0x7fff5a724640, other=...) at workdir/unxlngx6/UnpackedTarball/mdds/include/mdds/multi_type_vector_itr.hpp:220
12 0x00002aaab8cf8e47 in mdds::__mtv::iterator_base<mdds::multi_type_vector<mdds::mtv::custom_block_func1<50, mdds::mtv::noncopyable_managed_element_block<50, SvtBroadcaster> > >::iterator_trait, mdds::__mtv::private_data_forward_update<mdds::__mtv::iterator_value_node<unsigned long, mdds::mtv::base_element_block> > >::operator= (this=0x7fff5a724640) at workdir/unxlngx6/UnpackedTarball/mdds/include/mdds/multi_type_vector_itr.hpp:233
13 0x00002aaab8d2e2a2 in (anonymous namespace)::startListening (rStore=..., itBlockPos=..., nElemPos=1, nRow=1, rLst=...) at sc/source/core/data/column2.cxx:2049
14 0x00002aaab8d2e362 in ScColumn::StartListening (this=0x1d24290, rLst=..., nRow=1) at sc/source/core/data/column2.cxx:2068
15 0x00002aaab8fe4c4c in ScTable::StartListening (this=0x1d24000, rAddress=..., pListener=0x22c0700) at sc/source/core/data/table5.cxx:1089
16 0x00002aaab8de4fc9 in ScDocument::StartListeningCell (this=0x1bc05b8, rAddress=..., pListener=0x22c0700) at sc/source/core/data/documen7.cxx:192
17 0x00002aaab90337d8 in (anonymous namespace)::StartEndListening::startListening (this=0x7fff5a724a30, rRange=...) at sc/source/core/tool/chartlis.cxx:303
18 0x00002aaab9033769 in (anonymous namespace)::StartEndListening::operator() (this=0x7fff5a724a30, pToken=...) at sc/source/core/tool/chartlis.cxx:294
19 0x00002aaab903645c in std::for_each<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<ScToken>*, std::__cxx1998::vector<boost::intrusive_ptr<ScToken>, std::allocator<boost::intrusive_ptr<ScToken> > > >, std::__debug::vector<boost::intrusive_ptr<ScToken> > >, {anonymous}::StartEndListening>(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<ScToken>*, std::__cxx1998::vector<boost::intrusive_ptr<ScToken>, std::allocator<boost::intrusive_ptr<ScToken> > > >, std::__debug::vector<boost::intrusive_ptr<ScToken>, std::allocator<boost::intrusive_ptr<ScToken> > > >, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<ScToken>*, std::__cxx1998::vector<boost::intrusive_ptr<ScToken>, std::allocator<boost::intrusive_ptr<ScToken> > > >, std::__debug::vector<boost::intrusive_ptr<ScToken>, std::allocator<boost::intrusive_ptr<ScToken> > > >, (anonymous namespace)::StartEndListening) (__first=..., __last=..., __f=...) at /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/stl_algo.h:4442
20 0x00002aaab9033978 in ScChartListener::StartListeningTo (this=0x22c0700) at sc/source/core/tool/chartlis.cxx:329
21 0x00002aaac6c8fd90 in XclImpChChart::Convert (this=0x21082b0, xChartDoc=uno::Reference to (chart::ChartModel *) 0x2aaac80d3a90, rDffConv=..., rObjName="Object 1", rChartRect=Rectangle = {...}) at sc/source/filter/excel/xichart.cxx:4018
22 0x00002aaac6c91b1a in XclImpChart::Convert (this=0x20e4a50, xModel=uno::Reference to (chart::ChartModel *) 0x2aaac80d3a90, rDffConv=..., rObjName="Object 1", rChartRect=Rectangle = {...}) at sc/source/filter/excel/xichart.cxx:4352
23 0x00002aaac6cd7f0d in XclImpChartObj::DoPostProcessSdrObj (this=0x2108210, rDffConv=..., rSdrObj=...) at sc/source/filter/excel/xiescher.cxx:1679
24 0x00002aaac6cd1e09 in XclImpDrawObjBase::PostProcessSdrObject (this=0x2108210, rDffConv=..., rSdrObj=...) at sc/source/filter/excel/xiescher.cxx:499
25 0x00002aaac6ce1d0d in XclImpDffConverter::InsertSdrObject (this=0x7fff5a725240, rObjList=..., rDrawObj=..., pSdrObj=0x218b530) at sc/source/filter/excel/xiescher.cxx:3703
26 0x00002aaac6ce1bf0 in XclImpDffConverter::ProcessShContainer (this=0x7fff5a725240, rDffStrm=..., rShHeader=...) at sc/source/filter/excel/xiescher.cxx:3687
27 0x00002aaac6ce1a6b in XclImpDffConverter::ProcessShGrContainer (this=0x7fff5a725240, rDffStrm=..., rShGrHeader=...) at sc/source/filter/excel/xiescher.cxx:3654
28 0x00002aaac6ce1970 in XclImpDffConverter::ProcessDgContainer (this=0x7fff5a725240, rDffStrm=..., rDgHeader=...) at sc/source/filter/excel/xiescher.cxx:3627
29 0x00002aaac6cdfce7 in XclImpDffConverter::ProcessDrawing (this=0x7fff5a725240, rDffStrm=...) at sc/source/filter/excel/xiescher.cxx:3281
30 0x00002aaac6ce2f90 in XclImpDrawing::ImplConvertObjects (this=0x20e4410, rDffConv=..., rSdrModel=..., rSdrPage=...) at sc/source/filter/excel/xiescher.cxx:3901
31 0x00002aaac6ce3b97 in XclImpSheetDrawing::ConvertObjects (this=0x20e4410, rDffConv=...) at sc/source/filter/excel/xiescher.cxx:4051
32 0x00002aaac6ce4cb8 in XclImpObjectManager::ConvertObjects (this=0x1d20cd0) at sc/source/filter/excel/xiescher.cxx:4184
33 0x00002aaac6aeb04c in ImportExcel::PostDocLoad (this=0x1ba80e0) at sc/source/filter/excel/impop.cxx:1226
34 0x00002aaac6ac0569 in ImportExcel8::PostDocLoad (this=0x1ba80e0) at sc/source/filter/excel/excimp8.cxx:387
35 0x00002aaac6afe8ca in ImportExcel8::Read (this=0x1ba80e0) at sc/source/filter/excel/read.cxx:1296
36 0x00002aaac6aaf5de in ScFormatFilterPluginImpl::ScImportExcel (this=0x1bf79e0, rMedium=..., pDocument=0x1bc05b8, eFormat=EIF_BIFF8) at sc/source/filter/excel/excel.cxx:139
37 0x00002aaab94490cd in ScDocShell::ConvertFrom (this=0x1bc04c0, rMedium=...) at sc/source/ui/docshell/docsh.cxx:1119
38 0x00002aaaba6d627a in SfxObjectShell::DoLoad (this=0x1bc04c0, pMed=0x1c76900) at sfx2/source/doc/objstor.cxx:769
39 0x00002aaab580e466 in ScBootstrapFixture::load (this=0x134c958, bReadWrite=false, rURL="file:///tmp/lLYlTt", rFilter="MS Excel 97", rUserData="", rTypeName="", nFilterFlags=1, nClipboardID=0, nFilterVersion=0, pPassword=0x0) at sc/qa/unit/helper/qahelper.hxx:140
40 0x00002aaab580e5f6 in ScBootstrapFixture::load (this=0x134c958, rURL="file:///tmp/lLYlTt", rFilter="MS Excel 97", rUserData="", rTypeName="", nFilterFlags=1, nClipboardID=0, nFilterVersion=0, pPassword=0x0) at sc/qa/unit/helper/qahelper.hxx:154
41 0x00002aaab58042bc in ScFiltersTest::load (this=0x134c950, rFilter="MS Excel 97", rURL="file:///tmp/lLYlTt", rUserData="", nFilterFlags=1, nClipboardID=0, nFilterVersion=0) at sc/qa/unit/filters-test.cxx:102
42 0x00002aaabe3c1d5f in test::FiltersTest::recursiveScan (this=0x134c950, nExpected=test::pass, rFilter="MS Excel 97", rURL="file://sc/qa/unit/data/xls/pass", rUserData="", nFilterFlags=1, nClipboardID=0, nFilterVersion=0) at unotest/source/cpp/filters-test.cxx:113
43 0x00002aaabe3c27b5 in test::FiltersTest::testDir (this=0x134c950, rFilter="MS Excel 97", rURL="file://sc/qa/unit/data/xls/", rUserData="", nFilterFlags=1, nClipboardID=0, nFilterVersion=0) at unotest/source/cpp/filters-test.cxx:137
44 0x00002aaab580451b in ScFiltersTest::testCVEs (this=0x134c950) at sc/qa/unit/filters-test.cxx:123
45 0x00002aaab5815a70 in CppUnit::TestCaller<ScFiltersTest>::runTest (this=0x134c8d0) at workdir/unxlngx6/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:166
46 0x00002aaaaade44e8 in CppUnit::TestCaseMethodFunctor::operator() (this=0x7fff5a72afe0) at TestCase.cpp:32
47 0x00002aaab2a0ba87 in (anonymous namespace)::Prot::protect (this=0x12c3740, functor=...) at unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:88
48 0x00002aaaaaddc587 in CppUnit::ProtectorChain::ProtectFunctor::operator() (this=0x12c36e0) at ProtectorChain.cpp:20
49 0x00002aaab16ab51c in (anonymous namespace)::Prot::protect (this=0x12c3760, functor=..., context=...) at unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:64
50 0x00002aaaaaddc587 in CppUnit::ProtectorChain::ProtectFunctor::operator() (this=0x134c9d0) at ProtectorChain.cpp:20
51 0x00002aaaaadcde08 in CppUnit::DefaultProtector::protect (this=0x12bf5b0, functor=..., context=...) at DefaultProtector.cpp:15
52 0x00002aaaaaddc587 in CppUnit::ProtectorChain::ProtectFunctor::operator() (this=0x134d300) at ProtectorChain.cpp:20
53 0x00002aaaaaddc41c in CppUnit::ProtectorChain::protect (this=0x12bf2d0, functor=..., context=...) at ProtectorChain.cpp:77
54 0x00002aaaaadf375a in CppUnit::TestResult::protect (this=0x7fff5a72b500, functor=..., test=0x134c8d0, shortDescription="") at TestResult.cpp:181
55 0x00002aaaaade3fae in CppUnit::TestCase::run (this=0x134c8d0, result=0x7fff5a72b500) at TestCase.cpp:92
56 0x00002aaaaade4d60 in CppUnit::TestComposite::doRunChildTests (this=0x134c880, controller=0x7fff5a72b500) at TestComposite.cpp:64
57 0x00002aaaaade4be8 in CppUnit::TestComposite::run (this=0x134c880, result=0x7fff5a72b500) at TestComposite.cpp:23
58 0x00002aaaaade4d60 in CppUnit::TestComposite::doRunChildTests (this=0x134c800, controller=0x7fff5a72b500) at TestComposite.cpp:64
59 0x00002aaaaade4be8 in CppUnit::TestComposite::run (this=0x134c800, result=0x7fff5a72b500) at TestComposite.cpp:23
60 0x00002aaaaadfa9f2 in CppUnit::TestRunner::WrappingSuite::run (this=0x12c3690, result=0x7fff5a72b500) at TestRunner.cpp:47
61 0x00002aaaaadf3464 in CppUnit::TestResult::runTest (this=0x7fff5a72b500, test=0x12c3690) at TestResult.cpp:148
62 0x00002aaaaadfac52 in CppUnit::TestRunner::run (this=0x7fff5a72b390, controller=..., testPath="") at TestRunner.cpp:96
63 0x0000000000403f9b in (anonymous namespace)::ProtectedFixtureFunctor::run (this=0x7fff5a72b450) at sal/cppunittester/cppunittester.cxx:151
64 0x0000000000404620 in sal_main () at sal/cppunittester/cppunittester.cxx:243
65 0x000000000040426b in main (argc=15, argv=0x7fff5a72b758) at sal/cppunittester/cppunittester.cxx:167

Change-Id: Ie76a107c313b65136b040b8a6232ab0dc94f72d3
---
 mdds/UnpackedTarball_mdds.mk |   1 +
 mdds/singularity.patch.0     | 104 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 105 insertions(+)
 create mode 100644 mdds/singularity.patch.0

diff --git a/mdds/UnpackedTarball_mdds.mk b/mdds/UnpackedTarball_mdds.mk
index b33bc1b..0058be6 100644
--- a/mdds/UnpackedTarball_mdds.mk
+++ b/mdds/UnpackedTarball_mdds.mk
@@ -17,6 +17,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,mdds,\
 	mdds/mdds_0.6.0.patch \
 	mdds/0001-Workaround-for-gcc-bug.patch \
 	mdds/mdds_0.7.0_unreachable_warning.patch.1 \
+	mdds/singularity.patch.0 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/mdds/singularity.patch.0 b/mdds/singularity.patch.0
new file mode 100644
index 0000000..c2e35e3
--- /dev/null
+++ b/mdds/singularity.patch.0
@@ -0,0 +1,104 @@
+--- include/mdds/multi_type_vector_itr.hpp	2013-05-21 01:11:00.957981420 +0200
++++ include/mdds/multi_type_vector_itr.hpp	2013-05-21 10:38:52.283753158 +0200
+@@ -30,6 +30,8 @@
+ 
+ #include "multi_type_vector_types.hpp"
+ 
++#include <cstdlib>
++
+ namespace mdds { namespace __mtv {
+ 
+ /**
+@@ -138,11 +140,12 @@
+     typedef typename parent_type::size_type size_type;
+     typedef iterator_value_node<size_type, typename parent_type::element_block_type> node;
+ 
+-    iterator_common_base() : m_cur_node(0, 0) {}
++    iterator_common_base() : m_singular(true), m_cur_node(0, 0) {}
+ 
+     iterator_common_base(
+         const base_iterator_type& pos, const base_iterator_type& end,
+         size_type start_pos, size_type block_index) :
++        m_singular(false),
+         m_cur_node(start_pos, block_index),
+         m_pos(pos),
+         m_end(end)
+@@ -152,14 +155,20 @@
+     }
+ 
+     iterator_common_base(const iterator_common_base& other) :
+-        m_cur_node(other.m_cur_node),
+-        m_pos(other.m_pos),
+-        m_end(other.m_end)
++        m_singular(other.m_singular),
++        m_cur_node(other.m_cur_node)
+     {
++        if (!m_singular)
++        {
++            m_pos = other.m_pos;
++            m_end = other.m_end;
++        }
+     }
+ 
+     void update_node()
+     {
++        if (m_singular)
++            std::abort();
+ #ifdef MDDS_MULTI_TYPE_VECTOR_DEBUG
+         if (m_pos == m_end)
+             throw general_error("Current node position should never equal the end position during node update.");
+@@ -177,6 +186,8 @@
+ 
+     node* inc()
+     {
++        if (m_singular)
++            std::abort();
+         ++m_pos;
+         if (m_pos == m_end)
+             return NULL;
+@@ -187,11 +198,14 @@
+ 
+     node* dec()
+     {
++        if (m_singular)
++            std::abort();
+         --m_pos;
+         update_node();
+         return &m_cur_node;
+     }
+ 
++    bool m_singular;
+     node m_cur_node;
+     base_iterator_type m_pos;
+     base_iterator_type m_end;
+@@ -199,6 +213,8 @@
+ public:
+     bool operator== (const iterator_common_base& other) const
+     {
++        if (m_singular || other.m_singular)
++            std::abort();
+         if (m_pos != m_end && other.m_pos != other.m_end)
+         {
+             // TODO: Set hard-coded values to the current node for the end
+@@ -216,13 +232,19 @@
+ 
+     iterator_common_base& operator= (const iterator_common_base& other)
+     {
+-        iterator_common_base assigned(other);
+-        swap(assigned);
++        if (other.m_singular)
++            std::abort();
++        m_cur_node = other.m_cur_node;
++        m_pos = other.m_pos;
++        m_end = other.m_end;
++        m_singular = false;
+         return *this;
+     }
+ 
+     void swap(iterator_common_base& other)
+     {
++        if (m_singular || other.m_singular)
++            std::abort();
+         m_cur_node.swap(other.m_cur_node);
+         std::swap(m_pos, other.m_pos);
+         std::swap(m_end, other.m_end);
-- 
1.8.1.4

_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to