Kaydet (Commit) d34dcde1 authored tarafından Miklos Vajna's avatar Miklos Vajna

sw: work around what seems to be a gcc-4.8 compiler bug

	Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault.
	(anonymous namespace)::print_type<15> (ctx=..., info=0x7fffffff7f90, unknown_name=...) at ../../../../../libstdc++-v3/src/c++11/debug.cc:641
	641     ../../../../../libstdc++-v3/src/c++11/debug.cc: No such file or directory.
	(gdb) up
	#1  0x00007ffff6abb008 in (anonymous namespace)::print_description (ctx=..., inst=...) at ../../../../../libstdc++-v3/src/c++11/debug.cc:817
	817     in ../../../../../libstdc++-v3/src/c++11/debug.cc
	(gdb)
	#2  0x00007ffff6abc7aa in (anonymous namespace)::print_description (param=..., ctx=...) at ../../../../../libstdc++-v3/src/c++11/debug.cc:835
	835     in ../../../../../libstdc++-v3/src/c++11/debug.cc
	(gdb)
	#3  __gnu_debug::_Error_formatter::_M_error (this=0x7fffffff7af0) at ../../../../../libstdc++-v3/src/c++11/debug.cc:1061
	1061    in ../../../../../libstdc++-v3/src/c++11/debug.cc
	(gdb)
	#4  0x00007fffca2b6313 in __gnu_debug::operator!=<__gnu_cxx::__normal_iterator<SwAnchoredObject* const*, std::__cxx1998::vector<SwAnchoredObject*, std::allocator<SwAnchoredObject*> > >, std::__debug::vector<SwAnchoredObject*, std::allocator<SwAnchoredObject*> > > (__lhs=0x0, __rhs=invalid iterator) at /usr/include/c++/4.8/debug/safe_iterator.h:535
	535           _GLIBCXX_DEBUG_VERIFY(! __lhs._M_singular() && ! __rhs._M_singular(),
	(gdb)
	#5  0x00007fffca7f3de2 in SwAnchoredObject::UpdateObjInSortedList (this=0x1fa6fd8) at /git/libreoffice/master/sw/source/core/layout/anchoredobject.cxx:629
	629                     for (SwAnchoredObject* pAnchoredObj : *pObjs)

Given that valgrind doesn't point out anything and the old and the new code is
meant to be the same, my only guess is that the baseline gcc has some codegen
bug. This happens reasonably frequently, current bugdoc was a DOCX file
with 4 shapes anchored to the same paragraph, affecting only dbgutil
builds, it seems.

Change-Id: I2316e25eea87f2aa5736576d5168e113480f80e4
Reviewed-on: https://gerrit.libreoffice.org/49631Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
üst 3c1bfd95
...@@ -626,8 +626,9 @@ void SwAnchoredObject::UpdateObjInSortedList() ...@@ -626,8 +626,9 @@ void SwAnchoredObject::UpdateObjInSortedList()
{ {
const SwSortedObjs* pObjs = GetAnchorFrame()->GetDrawObjs(); const SwSortedObjs* pObjs = GetAnchorFrame()->GetDrawObjs();
// determine start index // determine start index
for (SwAnchoredObject* pAnchoredObj : *pObjs) for (auto it = pObjs->begin(); it != pObjs->end(); ++it)
{ {
SwAnchoredObject* pAnchoredObj = *it;
if ( pAnchoredObj->ConsiderObjWrapInfluenceOnObjPos() ) if ( pAnchoredObj->ConsiderObjWrapInfluenceOnObjPos() )
pAnchoredObj->InvalidateObjPosForConsiderWrapInfluence(); pAnchoredObj->InvalidateObjPosForConsiderWrapInfluence();
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment