[Libreoffice] [PUSHED][PATCH] SwSelBoxes: svarray -> std::map

Stephan Bergmann sbergman at redhat.com
Wed Nov 23 12:00:42 PST 2011


I keep getting crashes from one of the subsequentchecks now, 
suspiciously looking like this patch causes them, but am too tired right 
now to debug myself:

> Program terminated with signal 11, Segmentation fault.
> #0  0x00007ff44ad20b3e in SvPtrarr::operator[] (this=0x38, nP=0) at /data/lo/core/svl/source/memtools/svarray.cxx:56
> 56	SV_IMPL_VARARR(SvPtrarr,VoidPtr)
> (gdb) where
> #0  0x00007ff44ad20b3e in SvPtrarr::operator[] (this=0x38, nP=0) at /data/lo/core/svl/source/memtools/svarray.cxx:56
> #1  0x00007ff41ae54118 in SwTableBoxes::operator[] (this=0x38, nP=0) at /data/lo/core/sw/inc/swtable.hxx:80
> #2  0x00007ff41b194839 in SwTable::InsertSpannedRow (this=0x7ff4107fe6f0, pDoc=0x7ff410783d60, nRowIdx=0, nCnt=1) at /data/lo/core/sw/source/core/table/swnewtable.cxx:1189
> #3  0x00007ff41b1960a0 in SwTable::NewSplitRow (this=0x7ff4107fe6f0, pDoc=0x7ff410783d60, rBoxes=..., nCnt=2, bSameHeight=0 '\000') at /data/lo/core/sw/source/core/table/swnewtable.cxx:1464
> #4  0x00007ff41af7e260 in SwTable::SplitRow (this=0x7ff4107fe6f0, pDoc=0x7ff410783d60, rBoxes=..., nCnt=1, bSameHeight=0 '\000') at /data/lo/core/sw/inc/swtable.hxx:227
> #5  0x00007ff41af7443c in SwDoc::SplitTbl (this=0x7ff410783d60, rBoxes=..., bVert=0 '\000', nCnt=1, bSameHeight=0 '\000') at /data/lo/core/sw/source/core/docnode/ndtbl.cxx:2177
> #6  0x00007ff41b444898 in SwXTextTableCursor::splitRange (this=0x7ff41542d788, Count=1, Horizontal=1 '\001') at /data/lo/core/sw/source/core/unocore/unotbl.cxx:1733
> #7  0x00007ff43c6a628d in callVirtualMethod (pThis=0x7ff41542d7b0, nVtableIndex=12, pRegisterReturn=0x7ff410809dc0, pReturnTypeRef=0x13d2280, bSimpleReturn=true, pStack=0x7ff41523d2a0, nStack=0, pGPR=0x7ff41523d360, nGPR=3, pFPR=0x7ff41523d320, nFPR=0) at /data/lo/core/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:157
> #8  0x00007ff43c6a6dcd in cpp_call (pThis=0x7ff4107fb5f0, aVtableSlot=..., pReturnTypeRef=0x13d2280, nParams=2, pParams=0x7ff41c00b7e0, pUnoReturn=0x7ff410809dc0, pUnoArgs=0x7ff41080e320, ppUnoExc=0x7ff41523d708) at /data/lo/core/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:394
> #9  0x00007ff43c6a78b2 in bridges::cpp_uno::shared::unoInterfaceProxyDispatch (pUnoI=0x7ff4107fb5f0, pMemberDescr=0x7ff41c00e340, pReturn=0x7ff410809dc0, pArgs=0x7ff41080e320, ppException=0x7ff41523d708) at /data/lo/core/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:588
> #10 0x00007ff438e67440 in binaryurp::IncomingRequest::execute_throw (this=0x7ff41c01d840, returnValue=0x7ff41523db60, outArguments=0x7ff41523dad0) at /data/lo/core/binaryurp/source/incomingrequest.cxx:263
> #11 0x00007ff438e663bb in binaryurp::IncomingRequest::execute (this=0x7ff41c01d840) at /data/lo/core/binaryurp/source/incomingrequest.cxx:89
> #12 0x00007ff438e8120e in binaryurp::(anonymous namespace)::request (pThreadSpecificData=0x7ff41c01d840) at /data/lo/core/binaryurp/source/reader.cxx:107
> #13 0x00007ff44c0e8849 in cppu_threadpool::JobQueue::enter (this=0x7ff41c00ea60, nDisposeId=<optimized out>, bReturnWhenNoJob=1 '\001') at /data/lo/core/cppu/source/threadpool/jobqueue.cxx:123
> #14 0x00007ff44c0e9695 in cppu_threadpool::ORequestThread::run (this=0x7ff41c002300) at /data/lo/core/cppu/source/threadpool/thread.cxx:199
> #15 0x00007ff44c0ea224 in cppu_requestThreadWorker (pVoid=0x7ff41c002300) at /data/lo/core/cppu/source/threadpool/thread.cxx:49
> #16 0x00007ff44d00c60b in osl_thread_start_Impl (pData=0x7ff41c00ec40) at thread.c:277
> #17 0x0000003ec7607b31 in start_thread (arg=0x7ff41523e700) at pthread_create.c:305
> #18 0x0000003ec72dfd2d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
> (gdb) frame 2
> #2  0x00007ff41b194839 in SwTable::InsertSpannedRow (this=0x7ff4107fe6f0, pDoc=0x7ff410783d60, nRowIdx=0, nCnt=1) at /data/lo/core/sw/source/core/table/swnewtable.cxx:1189
> 1189	            pNewLine->GetTabBoxes()[ nCurrBox ]->setRowSpan( nRowSpan - n );
> (gdb) print pNewLine
> $1 = (SwTableLine *) 0x10
> (gdb) print nRowIdx
> $2 = 0
> (gdb) print nCnt
> $3 = 1
> (gdb) print n
> $4 = 0
> (gdb) print aLines
> $5 = {<SvPtrarr> = {pData = 0x7ff4436b6d28, nFree = 0, nA = 1}, <No data fields>}

Stephan


More information about the LibreOffice mailing list