summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* libxml2: upgrade to release 2.9.12Michael Stahl2022-03-313-6/+6
| | | | | | | | | | | | | | | | Fixes: CVE-2021-3516 CVE-2021-3517 CVE-2021-3518 CVE-2021-3537 CVE-2021-3541 * external/libxml2/ubsan.patch.0: remove, fixed upstream Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115913 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit bf0c6a98ae38cd2188d7f7e94f1563e5ce6a8ce4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115927 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Change-Id: I347dc854b862e78bde87d3e57cf5fdb584ca5673
* Add UNO API for custom Jump ListsSamuel Mehrbrodt2022-03-304-21/+142
| | | | | | Backport of changes to commit after it was cherry-picked to this branch Change-Id: I13b6c3ad5de386cf74e2b346f10889bc46a8ad4e
* Register JumpList service in RDB databaseThorsten Behrens2022-03-302-1/+2
| | | | Change-Id: I3e9ac109b6dbdd4dd6a3b6281699e58563f4805c
* Drop ComPtr and use sal::systools::COMReferenceThorsten Behrens2022-03-292-18/+30
| | | | | | | More partial application of commit ed40d477b2412d4f23540052ca0748028c6103e6 Change-Id: If0bd069b6943486b0bd7b6a82304b082b98ad946
* Jumplist is windows-onlyThorsten Behrens2022-03-271-1/+1
| | | | | | | Fix packaging breakage on Linux - Repository.mk also implicitely adds lib to packaging. Change-Id: I7912128afbcc177b4d66b4be975bc90331b6d67a
* Add UNO API for custom Jump ListsSamuel Mehrbrodt2022-03-2510-0/+520
| | | | | | Allows adding custom jump list categories to Windows Task Bar Change-Id: I13b6c3ad5de386cf74e2b346f10889bc46a8ad4e
* Use sal::systools::COMReference in getAdoDatalinkSamuel Mehrbrodt2022-03-251-1/+32
| | | | | | Partial backport of commit 996610352fd0fc5d57a9231fa7fb3d43533863d6 Change-Id: I1221757d54a90357c5fb8b3ee3fc967fce9c76c6
* Improve COM library management in fpickerJulien Nabet2022-03-253-10/+65
| | | | | | | | | | | | | | | | | Inspired from: author Julien Nabet <serval2412@yahoo.fr> 2020-05-29 23:58:59 +0200 committer Mike Kaganski <mike.kaganski@collabora.com> 2020-06-03 23:04:27 +0200 commit 95e5d37b6e62eb39f2d5337e124e86b3d0c3f399 (patch) tree 5488826b390c04a2b32d2f9aa43f49a64f52db3d parent 3d3cb4328ece843b3e31b8411f9d16bbedb57a7b (diff) Improve COM library management in ADO Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95498 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins (cherry picked from commit 08e02ae9606f6cb7ef49745ebe177089ed6d39fa) Change-Id: If0b136cdcc89baa6bc90912d42b3ba07fa6c0efb
* Drop ComPtr and use sal::systools::COMReferenceSamuel Mehrbrodt2022-03-253-22/+46
| | | | | | Partial backport of ed40d477b2412d4f23540052ca0748028c6103e6 Change-Id: I3a852a5172d363c2f37f8c4066e1e2f6a18e7c37
* Fix autoconf>=2.70 gcc-wrapper breakageThorsten Behrens2022-03-241-0/+1
| | | | | | | | | | | | | | | | | | Re-generated configure file gets confused & claims not finding C89- compatible compiler for gcc-wrapper-building libassuan with msvc underneath. Work-around the problem by telling toolchain right off that this _is_ a std c compliant compiler. Change-Id: I4fa23673b790bc70a9294951df545c27f5236f81 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127641 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit 1bb0e177124d5d6661b72df6c7d848fb23639652) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132061 Tested-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
* tdf#143239 sw: layout: invalidate fly position when moving off pageMichael Stahl2022-03-013-0/+69
| | | | | | | | | | | | | | | | | | | | It's possible that flags on the fly are all valid when it is moved off page when SwLayAction::FormatContent() returns and then it may not be positioned again, keeping its (wrong) position on the old page and will appear to be invisible unless you click on it. (regression from commits c799de145f7e289f31e3669646e5bd12814e6c5e and eb85de8e6b61fb3fcb6c03ae0145f7fe5478bccf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130535 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit b14bb255199e7d6db6ec9155b5d9237cb35fdba7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130548 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 2bed04d49fda2e2005699b3ef884c5295e56d8ca) Change-Id: If07d5af7b47eb288bef71d1b9e3459197b50fdc9
* Try to fix .bau files being ignoredSamuel Mehrbrodt2022-02-231-1/+1
| | | | Change-Id: I4248fb283d4399a8501a979cae7e6bcc6d8e8a2d
* Add logging to auotext functionsSamuel Mehrbrodt2022-02-234-0/+47
| | | | Change-Id: Id7e69e764664978cc97016803773c1077cd15979
* Adapt to hamcrest-2.2-3.fc35.noarch.rpmStephan Bergmann2022-02-231-0/+2
| | | | | | | | Change-Id: Ibddfc30a5f0828ab77235ec1155f1c2e1eef24ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116506 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit e6c25186c8584f68b5f8074004556bd855200fff)
* sw: layout: fix overlapped table rows in --convert-to pdffeature/cib_contract57lMichael Stahl2022-02-213-0/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the document is loaded via UI, the first layout action is triggered from resizing the Window and the table is positioned properly on the first try. If the document is loaded via --convert-to, only getRendererCount() formats the content of the table, and positioning goes wrong. Somehow the 2 rows of the table in the fly end up on the same Y position, because when the text frame in the 1st row is formatted and grows from 0 to 230, the already-valid position of the cell frame in the 2nd row is not invalidated. This happens since the earliest version checked, OOo 3.4 beta. This fix is somewhat similar to commit 068c133ac41c97652909b88c432e3b73010efc3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129851 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit e7874c936dd1ff9b3423eb7477cbee2494535176) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129845 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit 06bb600ce3445abe095b8011ec7e66b33badb4ef) Change-Id: I3259c440265cfe40dc7731cb4830bfe2487acf38
* sw: fix layout loop on soffice --convert-to pdf ooo95698-1.odtMichael Stahl2022-02-211-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For unknown reasons, this loops since commit 32902f66e7749b2d06d13f50416be5323a0c0ea9a "sw_redlinehide: make layout based Show/Hide mode the default" The problem is that when page 1 is layouted for the first time, it splits into 6 pages, and then the SwTabFrame 47 decides that it wants to move its follow flow line because it fits onto page 1. Then splitting the SwTabFrame again fails, but for this RemoveFollowFlowLine() was called a 2nd time and removed the one on page 3. The result is a layout with content on page 1, nothing on page 2, 3 and again content on page 4. This seems to reoccur every time page 1 is formatted. But the first RemoveFollowFlowLine() was wrong because CalcHeightOfFirstContentLine() returns 0 because lcl_CalcHeightOfFirstContentLine() didn't handle the case of SwSectionFrame containing SwTabFrame. This is similar to commit e024cad7c1365da6a198656c3ca0c32b28938e87 doing the same thing for text frames in section. Change-Id: I23fb4d1d56622039f461bb2d357a9c88db140605 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129800 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit b4271e028686d729189afc5e42a9c310f81144f3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129828 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 60811f97c753360393f52aa747837db15a722162)
* Release 6.3.6.14Samuel Mehrbrodt2022-01-211-1/+1
| | | | Change-Id: I3ea3698f6e8473dad3211a1b18788a9a49c039e7
* tdf#141556 Fix 100% CPU usage in Writer idle loopLuke Deller2022-01-213-36/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not interrupt the idle layout processing unnecessarily, because if it is continually interrupted before making enough progress then it will keep resuming at the same page, never finishing, constantly using CPU. This is achieved with two changes: - Revert "tdf#123583 use TaskStopwatch for Writer Idle loop" (commit 383032c50a3e3354f04200ce984a47ab9d2c5c67) which introduced a stopwatch timer to interrupt idle processing every 50ms. This reversion restores the previous behaviour where idle processing is interrupted only when there is an input event. - Filter out TIMER events so that they do not interrupt the idle loop; this fixes both tdf#123583 and tdf#141556 Conflicts: sw/source/core/inc/layact.hxx sw/source/core/layout/layact.cxx Change-Id: Ic989631e5f32199209d64b66b72059253fc0167a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113825 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 0fedac18214a6025401c4c426466a5166553e8ec) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114944 (cherry picked from commit b33148071ae6256845352f8625e58b1ab95be41c)
* Update .gitreviewSamuel Mehrbrodt2022-01-181-1/+1
| | | | Change-Id: I360c95365dbe553dc589a0a7da99189f1148a754
* tdf#123583 use TaskStopwatch for Writer Idle loopJan-Marek Glogowski2022-01-183-51/+36
| | | | | | | | | | | | | | | | | I don't see much of a point in the extra CheckIdleEnd() function. We already check IsInterrupt() almost everywhere, so move that check in there. An other strange thing is the Idle job, which should just be interrupted by keyboard events (using SetInputType(, which this patch removes). Unlucky for me this code was there in the initial import. I can just say that othing obvious breaks... Change-Id: Ia5955d1eaf2ab612f2c4b63b0e458ed92507b75c Reviewed-on: https://gerrit.libreoffice.org/77040 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 383032c50a3e3354f04200ce984a47ab9d2c5c67)
* Drop bogus check from TimerTest::testStopwatchStephan Bergmann2022-01-181-1/+0
| | | | | | | | | | | | | | | | (that had been added with 6e13585508ca3c9b66c6571ad1eb42bfcb66ef0b "Add a TaskStopwatch to interrupt idle loops"). For each StopwatchIdle, m_nIters counts the calls to Invoke before it calls Stop (which it calls based on tools::Time::GetSystemTicks calculations). But the number of such GetSystemTicks() spent in each Invoke is nondeterministic (it can e.g. be affected by the overall system load), so a2Idle may Stop prior to a1Idle and thus have a lower nIter2 than nIter1. Change-Id: I416eee9774c3605be25e9832b24dec7d9dcb00c2 Reviewed-on: https://gerrit.libreoffice.org/77561 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 92e42a0fde32e3f2dbe2c786a0e41547e4912b4b)
* Add a TaskStopwatch to interrupt idle loopsJan-Marek Glogowski2022-01-185-5/+259
| | | | | | | | | | | | | | | | | | | | If we have multiple pending Idles, they will interrupt / starve each other, because there will be an instant pending timeout for the next Idle. This patch introduces a time slice to tasks, so long running events can use a TaskStopwatch to do the real interrupt after running out of their time slice. Apart from the time, this breaks when AnyInput is available, except for the timer event. This class just helps to track the time, as the scheduler is coop, not preemptive. Change-Id: I9d0b4a5aa388ebdf496b355d100152d890224524 Reviewed-on: https://gerrit.libreoffice.org/75568 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 6e13585508ca3c9b66c6571ad1eb42bfcb66ef0b)
* tdf#116501 sw: layout: check for flys in SwTabFrame::ShouldBwdMoved()Michael Stahl2022-01-173-9/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On loading, this hits loop control warn:legacy.osl:580715:580715:sw/source/core/layout/layact.cxx:543: LoopControl_1 in SwLayAction::InternalAction This is because there's a fly frame 404 anchored at the last text frame 353 on page 2 inside the nested table 347. ShouldBwdMoved() sees that there is space on the bottom of page 2 and hence the follow flow row joined, but then it immediately splits again in the same way as before due to the fly with WrapTextMode_NONE. But then the outer table's cell 273 (upper of 347) is invalidated again, hence the loop. Try to check for overlapping flys in SwTabFrame::ShouldBwdMoved() by reusing CalcFlyOffsets(), which is ... not quite ideal, but perhaps better than copy-pasting half of it to a new function. This should have less side effects than the previous fix, but a problem remains that clicking on the shape on bottom of page 2 causes the layout to go wonky, but that was also the case with previous fix. Note there's a check of SwLayouter::DoesRowContainMovedFwdFrame() there already, but that doesn't help because it will only detect when the fly itself was moved forward, but in this case the fly remains on the page. Also likely it wouldn't be a good idea to move a text frame forward if the only thing of it that fits on a page is an anchored fly (i.e. its follow has mnOffset=0) because that can be intentional. Change-Id: I0376f7dcb784c006990336233c97f5093aaccb77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117473 Tested-by: Jenkins Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit f1439db62eb36ef5fbc9111b87dc4e0f24b3cb86) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117602 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 35a0bfa7bf52ca713ea8e57cd982d16723be920d)
* sw: add BIRT layout test documentMichael Stahl2022-01-172-0/+6
| | | | | | | | | | | | | | | | This nested table is an example that was broken by commit 91b2239783dc716bd71ce7962bfd7e341dfe4175 - if loaded with a wide window, it goes into layout loop; if loaded with a tall window size where page 2 is visible, strangely it doesn't loop. Change-Id: I5e73cfcd928ff1a321667c1a75b0ba7f348d4b77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117587 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit a41c71838d4662adf1ada9d46ec6e070cae7e695) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117603 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 5e658c91a5d1e69e34384dd50ac8ada358ebd8ba)
* Revert "tdf#116501 fix freezing at embedded text tables"Michael Stahl2022-01-174-36/+2
| | | | | | | | | | | | | | | | | | | This reverts commit 91b2239783dc716bd71ce7962bfd7e341dfe4175. This breaks documents that have many nested tables. For example Eclipse BIRT generates reports with tables nested 8 levels deep, they run into the counter in no time and, ironically, one goes into a layout loop because of this counter. Change-Id: I7451d01787903bbc60b305da3dc72f8259175e97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117472 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit ee042a371e98cdcc59848f0b953f1ce545e18e31) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117601 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> (cherry picked from commit 0f026c6e7186ef57e5806348a320f8383dfb7dc7)
* tdf#142326: Adapt to "libstdc++: Implement LWG 1203 for rvalue iostreams"Stephan Bergmann2022-01-171-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | ...for libstdc++ 11.2, similar to 1f3dddd6f21d91c429190ae314dadeec409f35f4 "Adapt to "libstdc++: Implement LWG 1203 for rvalue iostreams" for libstdc++ 12. The libstdc++ change referenced there has been backported to the releases/gcc-11 branch past the releases/gcc-11.1.0 tag (i.e., only towards libstdc++ 11.2) as <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=ca7d2f2ec9142995179a5d832a946b50de05e659> "libstdc++: Implement LWG 1203 for rvalue iostreams". According to <https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html>, <https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html#abi.versioning.__GLIBCXX__>, and <https://gcc.gnu.org/develop.html#timeline>, the right __GLIBCXX__ value for libstdc++ 11.1 should be 20210427, but at least libstdc++-devel-11.1.1-1.fc34.x86_64 defines it as 20210428 while not including the above "libstdc++: Implement LWG 1203 for rvalue iostreams" commit, so use that value here. Change-Id: I4e2c6d6ad8156a83f5c4bc861e4a118271928a20 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115738 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins (cherry picked from commit 95e26d3dce4f5a3b2d010d5ca47b4e450905a100)
* Adapt to "libstdc++: Implement LWG 1203 for rvalue iostreams"Stephan Bergmann2022-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=aa475c4ac80733f85ba47b109fc1900f05e810e2> towards GCC 12, so that now "the return type is the original rvalue stream type not its base class." (And which would thus have caused issues like > sfx2/source/control/bindings.cxx:1323:19: error: dynamic_cast from rvalue to reference type '::std::ostringstream &' (aka 'basic_ostringstream<char> &') > ? SAL_STREAM("File: " << pFile << " Line: " << nLine) : "")); > ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > include/sal/log.hxx:198:6: note: expanded from macro 'SAL_STREAM' > (dynamic_cast< ::std::ostringstream & >(::std::ostringstream() << stream).str()) > ^ > include/sal/log.hxx:341:20: note: expanded from macro 'SAL_INFO' > SAL_WHERE, stream) > ~~~~~~~~~~~^~~~~~~ > include/sal/log.hxx:155:68: note: expanded from macro 'SAL_DETAIL_LOG_STREAM' > SAL_DETAIL_LOG_STREAM_PRIVATE_(level, area, where, stream); \ > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~ > include/sal/log.hxx:133:45: note: expanded from macro 'SAL_DETAIL_LOG_STREAM_PRIVATE_' > ::sal::detail::StreamStart() << stream) == 1) \ > ^~~~~~ now. While the issue with old libstdc++ that originally prompted the dynamic_cast was > sfx2/source/control/bindings.cxx:1323:19: error: no member named 'str' in 'std::basic_ostream<char>' > ? SAL_STREAM("File: " << pFile << " Line: " << nLine) : "")); > ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > include/sal/log.hxx:194:40: note: expanded from macro 'SAL_STREAM' > (::std::ostringstream() << stream).str() > ^ > include/sal/log.hxx:336:20: note: expanded from macro 'SAL_INFO' > SAL_WHERE, stream) > ~~~~~~~~~~~^~~~~~~ > include/sal/log.hxx:155:68: note: expanded from macro 'SAL_DETAIL_LOG_STREAM' > SAL_DETAIL_LOG_STREAM_PRIVATE_(level, area, where, stream); \ > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~ > include/sal/log.hxx:133:45: note: expanded from macro 'SAL_DETAIL_LOG_STREAM_PRIVATE_' > ::sal::detail::StreamStart() << stream) == 1) \ > ^~~~~~ .) The libstdc++ macro _GLIBCXX_RELEASE is reportedly available since GCC 7.1. Change-Id: I1ee6eabb66355c1f28b9d305cbd85bac50d6b0e1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115121 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit 1f3dddd6f21d91c429190ae314dadeec409f35f4)
* Fix gpgmepp build with glibcMike Kaganski2022-01-172-0/+33
| | | | | | | | | | | | | posix-io.c: In function '_gpgme_io_spawn': posix-io.c:492:23: error: void value not ignored as it ought to be 492 | while ((i = closefrom (fd)) && errno == EINTR) | ^ make[1]: *** [Makefile:964: posix-io.lo] Error 1 Change-Id: I0e7abc33200ca7436c72e925447e681fd241c6a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123260 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
* Release 6.3.6.13Thorsten Behrens2021-12-131-1/+1
| | | | Change-Id: I7de37f19b61472d9050a60f949cdc77b66294b2b
* tdf#138518 sw: layout: fix assert on ooo43913-1.docMichael Stahl2021-12-103-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assertion `rAnchoredObjPage.GetPhyPageNum() == _nFromPageNum' failed. Because not only the fly's anchor frame moves forward in FormatAnchorFrameForCheckMoveFwd(), but also the fly itself, apparently because it's in a table: 0 SwAnchoredObject::SetPageFrame(SwPageFrame*) (this=0x5a1d3d8, _pNewPageFrame=0x8cfbeb0) at sw/source/core/layout/anchoredobject.cxx:162 1 SwPageFrame::MoveFly(SwFlyFrame*, SwPageFrame*) (this=0x8cbd8c0, pToMove=0x5a1d280, pDest=0x8cfbeb0) at sw/source/core/layout/flylay.cxx:985 2 lcl_ArrangeLowers(SwLayoutFrame*, tools::Long, bool) (pLay=0x8cf80c0, lYStart=179488, bInva=false) at sw/source/core/layout/tabfrm.cxx:5000 3 SwCellFrame::Format(OutputDevice*, SwBorderAttrs const*) (this=0x8cf80c0, pAttrs=0x8ce78c0) at sw/source/core/layout/tabfrm.cxx:5359 4 SwLayoutFrame::MakeAll(OutputDevice*) (this=0x8cf80c0) at sw/source/core/layout/calcmove.cxx:1036 5 SwFrame::PrepareMake(OutputDevice*) (this=0x8cf80c0, pRenderContext=0x5b7fcf0) at sw/source/core/layout/calcmove.cxx:375 6 SwFrame::Calc(OutputDevice*) const (this=0x8cf80c0, pRenderContext=0x5b7fcf0) at sw/source/core/layout/trvlfrm.cxx:1792 7 SwFrame::MakePos() (this=0x8cebdb0) at sw/source/core/layout/calcmove.cxx:627 8 SwTextFrame::MakePos() (this=0x8cebdb0) at sw/source/core/text/frmform.cxx:340 9 SwContentFrame::MakeAll(OutputDevice*) (this=0x8cebdb0) at sw/source/core/layout/calcmove.cxx:1412 10 SwFrame::PrepareMake(OutputDevice*) (this=0x8cebdb0, pRenderContext=0x5b7fcf0) at sw/source/core/layout/calcmove.cxx:286 11 SwFrame::Calc(OutputDevice*) const (this=0x8cebdb0, pRenderContext=0x5b7fcf0) at sw/source/core/layout/trvlfrm.cxx:1792 12 SwTextFrame::CalcFollow(o3tl::strong_int<int, Tag_TextFrameIndex>) (this=0x5ae2c60, nTextOfst=...) at sw/source/core/text/frmform.cxx:279 13 SwTextFrame::AdjustFollow_(SwTextFormatter&, o3tl::strong_int<int, Tag_TextFrameIndex>, o3tl::strong_int<int, Tag_TextFrameIndex>, unsigned char) (this=0x5ae2c60, rLine=..., nOffset=..., nEnd=..., nMode=1 '\001') at sw/source/core/text/frmform.cxx:611 14 SwTextFrame::FormatAdjust(SwTextFormatter&, WidowsAndOrphans&, o3tl::strong_int<int, Tag_TextFrameIndex>, bool) (this=0x5ae2c60, rLine=..., rFrameBreak=..., nStrLen=..., bDummy=false) at sw/source/core/text/frmform.cxx:1166 15 SwTextFrame::Format_(SwTextFormatter&, SwTextFormatInfo&, bool) (this=0x5ae2c60, rLine=..., rInf=..., bAdjust=false) at sw/source/core/text/frmform.cxx:1613 16 SwTextFrame::Format_(OutputDevice*, SwParaPortion*) (this=0x5ae2c60, pRenderContext=0x5b7fcf0, pPara=0x8d07490) at sw/source/core/text/frmform.cxx:1720 17 SwTextFrame::Format(OutputDevice*, SwBorderAttrs const*) (this=0x5ae2c60, pRenderContext=0x5b7fcf0) at sw/source/core/text/frmform.cxx:1910 18 SwContentFrame::MakeAll(OutputDevice*) (this=0x5ae2c60) at sw/source/core/layout/calcmove.cxx:1525 19 SwFrame::PrepareMake(OutputDevice*) (this=0x5ae2f80, pRenderContext=0x5b7fcf0) at sw/source/core/layout/calcmove.cxx:321 20 SwFrame::Calc(OutputDevice*) const (this=0x5ae2f80, pRenderContext=0x5b7fcf0) at sw/source/core/layout/trvlfrm.cxx:1792 21 SwObjectFormatterTextFrame::FormatAnchorFrameAndItsPrevs(SwTextFrame&) (_rAnchorTextFrame=...) at sw/source/core/layout/objectformattertxtfrm.cxx:905 22 SwObjectFormatterTextFrame::FormatAnchorFrameForCheckMoveFwd() (this=0x8ce5720) at sw/source/core/layout/objectformattertxtfrm.cxx:919 23 SwObjectFormatterTextFrame::DoFormatObjs() (this=0x8ce5720) at sw/source/core/layout/objectformattertxtfrm.cxx:368 24 SwObjectFormatter::FormatObjsAtFrame(SwFrame&, SwPageFrame const&, SwLayAction*) (_rAnchorFrame=..., _rPageFrame=..., _pLayAction=0x0) at sw/source/core/layout/objectformatter.cxx:160 25 SwContentFrame::CalcLowers(SwLayoutFrame&, SwLayoutFrame const&, long, bool) (rLay=..., rDontLeave=..., nBottom=192048, bSkipRowSpanCells=true) at sw/source/core/layout/tabfrm.cxx:1534 26 lcl_RecalcRow(SwRowFrame&, tools::Long) (rRow=..., nBottom=192048) at sw/source/core/layout/tabfrm.cxx:1653 27 SwTabFrame::MakeAll(OutputDevice*) (this=0x8cf5f80, pRenderContext=0x5b7fcf0) at sw/source/core/layout/tabfrm.cxx:2425 It looks like the _nFromPageNum is always from the SwObjectFormatter::mrPageFrame anyway because that's a precondition of the mpPgNumAndTypeOfAnchors->Collect() being called, so just rely on that to get the correct page. (regression from c799de145f7e289f31e3669646e5bd12814e6c5e) Change-Id: Ibdffb2121cffbc04320d17a29ab2e160dec4250b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115188 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 533a998e540b0f04068c876dde0e74adc3f79c93) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115201 Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 7eb12f8a09dd67168ba42058b99d8ab58a5c7b0a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115766 Tested-by: Michael Stahl <michael.stahl@allotropia.de>
* tdf#138518 sw: layout: avoid moving flys forward prematurelyMichael Stahl2021-12-103-17/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (regression from b9ef71476fd70bc13f50ebe80390e0730d1b7afb "tdf#134298 sw: layout: remove left-over page frame without content") When updating the 3rd ToX, the change to remove empty page frames causes one page frame to be deleted. On the subsequent layout, things generally move backward, but there are some fly-related hiccups; the first problem is visible on page 7. Commit eb85de8e6b61fb3fcb6c03ae0145f7fe5478bccf "sw: layout: if fly's anchor moves forward, move fly off SwPageFrame" helps quite a bit, but not completely; now the first problem happens on page 54, when SwTextFrame 1261 and its fly 3132 are formatted. Frame 1261 moves forward to page 55, and then SwObjectFormatterTextFrame::CheckMovedFwdCondition() returns true and so SwMovedFwdFramesByObjPos::Insert() is called to prevent frame 1261 from moving back to page 54. But the reason why it moved forward is that there are 3 flys on page 54 that are anchored on frames in the next-chain of 1261, namely 1275, 1283 and 1284; if these flys weren't on the page then 1261 would fit. While the move forward cannot be easily prevented in the situation, it's possible to avoid the entry into the SwMovedFwdFramesByObjPos map, by detecting that there are flys on the page that would should forward *before* the current one does. With this fix and the above mentioned commit to get the flys off the page, frame 1261 will eventually move back to page 54 again. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114478 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit c799de145f7e289f31e3669646e5bd12814e6c5e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114521 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit 8feac9601cfe35ee0966776bab15d122206f154e) tdf#138518 sw: layout: unbreak fdo80206-1.doc The 7 flys on the para on page 3 create ~15 extra pages with one paragraph each. Argh! One of the bPageHasFlysAnchoredBelowThis checks was inverted. How dumb of me. (regression from c799de145f7e289f31e3669646e5bd12814e6c5e) Still doesn't look good but now it looks same as in 7.0. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115242 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins (cherry picked from commit 59d96acec8c4d9e472daa3e2c287b3a754e01817) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115206 Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit dcea18e66e61c6f411b9bf6498a0ffc374161484) Change-Id: I83e44d65a0b889a49a313b0cd8b08efce4c3afa7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115765 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
* sw: layout: if fly's anchor moves forward, move fly off SwPageFrameMichael Stahl2021-12-109-10/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem is that on Show Changes->Hide Changes->Show Changes in a 311 page document, the fly "Grafik1" was initially on page 203 but ends up on page 204, with a fly-sized gap on page 194. In a 25 page cut down version of the bugdoc, on layout action 659 the fly's anchor SwTextFrame moves from page 21 to page 22, but the fly remains in the SwPageFrame's m_pSortedObjs, because it's not the anchor frame itself that moves but a distant previous frame, and page 21 goes valid. 0 SwFlowFrame::PasteTree(SwFrame*, SwLayoutFrame*, SwFrame*, SwFrame*) (pStart=0x57c9e30, pParent=0xba15c50, pSibling=0x5a0f920, pOldParent=0xb057690) at sw/source/core/layout/flowfrm.cxx:586 1 SwFlowFrame::MoveSubTree(SwLayoutFrame*, SwFrame*) (this=0x57c9f48, pParent=0xba15c50, pSibling=0x5a0f920) at sw/source/core/layout/flowfrm.cxx:677 2 SwFlowFrame::MoveFwd(bool, bool, bool) (this=0x57c9f48, bMakePage=true, bPageBreak=false, bMoveAlways=false) at sw/source/core/layout/flowfrm.cxx:2061 3 SwContentFrame::MakeAll(OutputDevice*) (this=0x57c9e30) at sw/source/core/layout/calcmove.cxx:1831 4 SwFrame::OptPrepareMake() (this=0x57c9e30) at sw/source/core/layout/calcmove.cxx:399 5 SwFrame::OptCalc() const (this=0x57c9e30) at sw/source/core/inc/frame.hxx:1065 6 SwLayAction::FormatContent_(SwContentFrame const*, SwPageFrame const*) (this=0x7ffec0191b30, pContent=0x57c9e30, pPage=0xb9a1fd0) at sw/source/core/layout/layact.cxx:1833 In subsequent layout actions the anchor frame moves forward one page at a time, until in action 665, when things get really interesting. On page 24, the anchor text frame 582 is formatted for the first time, and it moves the fly to page 24, after positioning it on the page. 2 SwPageFrame::MoveFly(SwFlyFrame*, SwPageFrame*) (this=0xb9a1fd0, pToMove=0x641d310, pDest=0x9125bb0) at sw/source/core/layout/flylay.cxx:972 3 SwFlyAtContentFrame::RegisterAtCorrectPage() (this=0x641d310) at sw/source/core/layout/flycnt.cxx:1432 4 SwAnchoredObject::SetVertPosOrientFrame(SwLayoutFrame const&) (this=0x641d468, _rVertPosOrientFrame=...) at sw/source/core/layout/anchoredobject.cxx:195 5 SwFlyAtContentFrame::MakeObjPos() (this=0x641d310) at sw/source/core/layout/flycnt.cxx:1466 6 SwFlyFreeFrame::MakeAll(OutputDevice*) (this=0x641d310) at sw/source/core/layout/flylay.cxx:223 7 SwFlyAtContentFrame::MakeAll(OutputDevice*) (this=0x641d310, pRenderContext=0x55b1f00) at sw/source/core/layout/flycnt.cxx:384 8 SwFrame::PrepareMake(OutputDevice*) (this=0x641d310, pRenderContext=0x55b1f00) at sw/source/core/layout/calcmove.cxx:375 9 SwFrame::Calc(OutputDevice*) const (this=0x641d310, pRenderContext=0x55b1f00) at sw/source/core/layout/trvlfrm.cxx:1791 10 SwFlyFrame::Calc(OutputDevice*) const (this=0x641d310, pRenderContext=0x55b1f00) at sw/source/core/layout/fly.cxx:2874 11 SwLayAction::FormatLayoutFly(SwFlyFrame*) (this=0x7ffec0191b30, pFly=0x641d310) at sw/source/core/layout/layact.cxx:1455 12 SwObjectFormatter::FormatObj_(SwAnchoredObject&) (this=0xa5c0d10, _rAnchoredObj=...) at sw/source/core/layout/objectformatter.cxx:286 13 SwObjectFormatterTextFrame::DoFormatObj(SwAnchoredObject&, bool) (this=0xa5c0d10, _rAnchoredObj=..., _bCheckForMovedFwd=false) at sw/source/core/layout/objectformattertxtfrm.cxx:135 14 SwObjectFormatter::FormatObjsAtFrame_(SwTextFrame*) (this=0xa5c0d10, _pMasterTextFrame=0x0) at sw/source/core/layout/objectformatter.cxx:408 15 SwObjectFormatterTextFrame::DoFormatObjs() (this=0xa5c0d10) at sw/source/core/layout/objectformattertxtfrm.cxx:337 16 SwObjectFormatter::FormatObjsAtFrame(SwFrame&, SwPageFrame const&, SwLayAction*) (_rAnchorFrame=..., _rPageFrame=..., _pLayAction=0x7ffec0191b30) at sw/source/core/layout/objectformatter.cxx:160 17 SwLayAction::FormatContent(SwPageFrame const*) (this=0x7ffec0191b30, pPage=0x9125bb0) at sw/source/core/layout/layact.cxx:1675 18 SwLayAction::InternalAction(OutputDevice*) (this=0x7ffec0191b30, pRenderContext=0x55b1f00) at sw/source/core/layout/layact.cxx:771 Nothing invalidates page 21 now that the fly is gone, and formatting on page 24 is kind of pointless now because everything from page 21 on is wrongly positioned. (It's possible to skip out of the main layout action loop via SetNextCycle()/IsAgain(), but at this point it's in layact:771 in the layout-all-the-visible-pages loop that follows the main loop, and that one can't be cancelled.) Then DoFormatObjs() is called on frame 582, and this calls FormatAnchorFrameForCheckMoveFwd(), which formats previous frame 581, splitting it and moving its follow along with 582 to page 25. Here SwMovedFwdFramesByObjPos::Insert() is called, and now the anchor text frame 582 cannot move back to page 24 because it's prevented by SwMovedFwdFramesByObjPos::FrameMovedFwdByObjPos(), but that was all based on the wrong assumption that the pages before 24 were completely formatted (this happens in action 670). Something later formats page 21 again, and so at the end there is a fly-sized hole at the bottom of page 24, with frame 582 at the top of page 25. It won't help to detect a situation where the fly is on a page previous to the page it's anchor frame is on in DoFormatObjs() because it was actually moved to the same page in a previous formatting of the anchor frame, in the same layout action. To fix this, try to detect in SwLayAction::FormatContent() if the anchor frame of any fly on the page has moved forward, and move those flys off the page; this is enough for the 25 page document. The 311 page document still has a hole on page 194 though; apparently the last content frame on the page is never reformatted, so invalidate its size. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114066 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit eb85de8e6b61fb3fcb6c03ae0145f7fe5478bccf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114519 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit 810f7e4e0b61ee7cb3a7d6a1b503782d7248a4b1) tdf#141945 sw: layout: check master frame when moving fly forward The problem is that in the finished layout the fly frames are positioned on the first page but are in SwPageFrame::m_pSortedObjs of the second page. Don't use FindPageFrameOfAnchor() because that looks up the follow-frame that contains the anchor position. This was unintentional; the idea was to get flys anchored in subsequent paragraphs out of the way. This situation where it's on a follow-frame of the same paragraph is more complicated and less obvious, so don't try to solve it now. (regression from eb85de8e6b61fb3fcb6c03ae0145f7fe5478bccf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115100 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 30512746c182b52f37f9a818d4e206c98e715cb7) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115080 Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 41f68b652eb1ccdd4941e2270426461da8e66417) Change-Id: I232c6b305e8593bfecd885c36058777f3980f82f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115763 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
* tdf#138039 tdf#134298 sw: layout: fix overlap of fly and tableMichael Stahl2021-12-103-3/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The layout is horribly borked, the fly anchored in the body-level paragraph messed with the preceding table: page id="1" top="284" width="11905" height="16837" bottom="17120" tab id="3" top="794" row id="4" top="17121" fly id="8" top="16725" txt id="7" top="1394" fly ptr="0x6ce5510" id="10" top="1302" SwTabFrame::CalcFlyOffsets() detects an overlap with the large fly, and since it has wrap NONE it resizes to below the large image. Then the SwTabFrame doesn't fit on the page, so it is split, but the split fails because nDistanceToUpperPrtBottom is -720 (negative); hence it is joined again. Meanwhile the fly was invalidated, so now CalcFlyOffsets() ignores it and the table shrinks again. Once the fly is positioned again, the process repeats from the start. Fix this in SwTabFrame::CalcFlyOffsets() by ignoring flys with wrap NONE that extend below the body of the document and are anchored in a frame in the next-chain of the table frame: these must move to the next page with their anchor frame. For the bugdoc this gives the same layout as LO 5.2. Reportedly this problem started to happen since commit 6f5024de2e1a5cc533527e45b33d9a415467c48d, but it's not obvious why. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105809 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 6b92d2e8522ecc98d2c5532f5076c20ae295168e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105940 Tested-by: Michael Stahl <michael.stahl@cib.de> Change-Id: Iafb8a6afcba634f11c5db73869313ded0fe13bbd
* tdf#138785 sw: fix mis-positioned as-char flys when deleting empty pageMichael Stahl2021-12-102-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When SwFrame::CheckPageDescs() deletes an empty page in the middle of the document, which happens during SetRedlineFlags() here, the SwFlyInContentFrame::maFrameArea is moved in lcl_MoveAllLowers(), but the SwFlyInContentFrame::m_aRefPoint stays unchanged. Because the formatting occurs only after the redline mode is reset, the position of the SwFlyInContentFrame when it is formatted is exactly the same as its (stale) m_aRefPoint, so the setting of (updated) maFrameArea is skipped in SwAsCharAnchoredObjectPosition::CalcPosition(), so the fly ends up a page above where it should be. So keep m_aRefPoint consistent with maFrameArea in lcl_MoveAllLowers(). (regression from b9ef71476fd70bc13f50ebe80390e0730d1b7afb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114332 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit e656cf2a71e738c282abcd0d610e724b955f274a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114520 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> (cherry picked from commit c79b92edfb5e650fff76688998cf4f0bbd08d2a4) Change-Id: If1b421daa0d71718d89d9772f5c0d9e367e76845 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115764 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
* tdf#134298 sw: layout: remove left-over page frame without contentMichael Stahl2021-12-105-40/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once tdf#138039 is fixed, this bugdoc has an additional empty page 3. This is because it first goes to 3 pages, and then the SwTextFrame on page does a MoveBwd, leaving behind a page frame with just a body frame and nothing else. It turns out that SwRootFrame::RemoveSuperfluous() only removes empty frames at the end of the document, but here there's a non-empty frame following it. Also, this function doesn't handle cases like right/left page styles so it can't delete pages in the middle. SwFrame::CheckPageDescs() doesn't remove page frames that don't have content, it only removes those that have the intentionally-empty flag set. Extend CheckPageDescs() to also remove page frames that don't have content, and make sure it is called when SwContentFrame::Cut() removes the last content from a page frame (it will be called after all pages are valid in SwLayAction::InternalAction()). (Alternatively it might be possible to prevent the problem from occurring in SwTextFly::ForEach() by ignoring the fly so that the first paragraph never leaves page 1, but we didn't explore that.) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105810 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit b9ef71476fd70bc13f50ebe80390e0730d1b7afb) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114097 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Change-Id: I3a3f1efe6d7ed28e05dc159a86abc3d702cc272b
* (related tdf#134298) sw: layout: avoid infinite loop in InternalAction()Michael Stahl2021-12-101-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | The condition IsInterrupt() && pPage && (m_nCheckPageNum != USHRT_MAX) isn't handled properly and the while loop will never terminate with the fix for tdf#134298 in several UITest_writer_tests*. If m_nCheckPageNum is set, then it must result in a call to CheckPageDescs() here; it's a member of SwLayAction so won't survive until the next idle layout invocation. There is a funny history of these loop conditions with commit 9eff9e699e17cc5a8a25895bd28dc8e4ceb8071e and cee296066ab780217395201ab84c2150c8840d25 so we can only hope this time we got it right... Change-Id: I91b63540bf4280296d747cb8e841594f8dd3b140 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105927 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@cib.de> (cherry picked from commit 094ee3955ee81e1bc631d50cc216cbb17a777839) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114096 Tested-by: Michael Stahl <michael.stahl@allotropia.de> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
* nss: upgrade to release 3.73Michael Stahl2021-12-101-2/+2
| | | | | | | | | | Fixes: CVE-2021-43527 Memory corruption via DER-encoded DSA and RSA-PSS signatures Change-Id: I5c3f169c57fc2763029b07ad7e325b2f53b7e28f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126218 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
* Teach symstore more duplicated DLLsThorsten Behrens2021-11-231-0/+2
| | | | | | | | | | Amending commit b4dfba947768834ffecc09056992019878711c8b with adding the copied DLLs here, too (symstore complains otherwise) Change-Id: If5cc155cf2fe11b0f97cd152993609fd2c835316 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120686 Tested-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
* replace usage of blacklist with denylistThorsten Behrens2021-11-231-4/+4
| | | | | | | | | | | | | | | | | .. and a few cases of instead doing blacklist->excludelist where that made more sense. Background and motivation: https://tools.ietf.org/html/draft-knodel-terminology-02 [API CHANGE] officecfg::Office::Canvas::DeviceBlacklist -> DeviceDenylist [API CHANGE] officecfg::Office::Canvas::BlacklistCurrentDevice -> DenylistCurrentDevice [API CHANGE] officecfg::Office::Common::Misc::OpenCLBlackList -> OpenCLDenyList Change-Id: Ia35e25496bf0cc0692d5de4cb66bfc232d3a869e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98180 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* symstore.sh: add vorbose modeJuergen Funk2021-11-231-3/+21
| | | | | | | Change-Id: I01f9827140810080c037108021ca70f2b906b05e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90083 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* Optionally generate PDBs also for nssJuergen Funk2021-11-232-2/+20
| | | | | | | | | | | | | | | | | | | | | | | Enables pdb generation for symbol builds, for: - freebl3.dll - libeay32.dll - nspr4.dll - nss3.dll - nssckbi.dll - nssdbm3.dll - nssutil3.dll - plc4.dll - plds4.dll - smime3.dll - softokn3.dll - sqlite3.dll - ssl3.dll - ssleay32.dll Change-Id: I231fdc8e8ade7b7a8b85fc76536291e0546f2eac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88673 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* Fix typosAndrea Gelmini2021-11-231-2/+2
| | | | | | | Change-Id: I2671a0faf78d8ece27aaa88082a60f19197e929f Reviewed-on: https://gerrit.libreoffice.org/85314 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
* symstore.sh: collect PDBs for *all* artifactsJuergen Funk2021-11-231-9/+59
| | | | | | | | | | - a number of external library PDBs where missing - also the soffice.bin and unopkg.bin (renaming that to *.bin.pdb) Change-Id: Idafcce87bfefadfa669807a861efab76b4122c62 Reviewed-on: https://gerrit.libreoffice.org/83726 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* symstore.sh: use logical operators for test statementsJuergen Funk2021-11-231-3/+3
| | | | | | | | | No need to spawn two subshells, test can do and/or logical ops itself. Change-Id: I2abba303383f9f0053515088d4fa32753a777a1d Reviewed-on: https://gerrit.libreoffice.org/83066 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* Add comment and pdb-only switch to symstore.shJuergen Funk2021-11-231-7/+14
| | | | | | | | | | | Two new switches added: -c plus a comment for the transaction -n do not store the exe/dll on the symbol server Change-Id: I8c5db06909720707987970347e298be6d55ebc71 Reviewed-on: https://gerrit.libreoffice.org/82751 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* Adapt to Bison 3.8 internal yyn -> yyrule renameStephan Bergmann2021-11-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | see <https://git.savannah.gnu.org/cgit/bison.git/commit/?id=f30067ed51f23802fc91761ede1506dfa72b2865> "glr2.cc: log the execution of deferred actions" including "Rename argument yyn as yyrule for clarity." YYBISON was defined as 1 rather than as a representation of the Bison version prior to <https://git.savannah.gnu.org/cgit/bison.git/commit/?id=21c147b6e5372563b7c4741deadaddb9354f4b09> "yacc.c: provide the Bison version as an integral macro", which shouldn't be a problem here. And YYBISON is apparently completely undefined with /usr/bin/bison on macOS. (The preceding comment always mentioned "yyi" and "yyrmap" in apparent mismatch with the actually used "yyn" and "yyr1" ever since c25ec0608a167bcf1d891043f02273761c351701 "initial import", so just leave it untouched.) Change-Id: I4f901407aa21ed4abec84e661d813ee7599f02f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122082 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Release 6.3.6.12Thorsten Behrens2021-11-051-1/+1
| | | | Change-Id: Ie4c94f7f0f5000e0b6fd86a3b6d5af5bea4e8202
* Disable PDF-to-PDF embedding on PDF export (hack), part IIIArmin Le Grand (Allotropia)2021-11-011-2/+9
| | | | | | | | Corrected creation of PDF export for Bitmap/BitmapEx which needs a createObject call in createBitmapEmit in all cases where no embedded PDF is written Change-Id: Ic0da0139d99b273f61c0164ac3615e288986bc94
* Disable PDF-to-PDF embedding on PDF export (hack), part IIArmin Le Grand (Allotropia)2021-07-073-2/+14
| | | | | | | | Adapted 899a52b236b81a94367ec8bafdff891a67d818aa to use officecfg::Office::Common::VCL::AllowPdfToPdfEmbedding instead of LIBO_ALLOW_PDF_TO_PDF_EMBEDDING Change-Id: I42e3d9a474400ec488352c081620a9b31cde3562
* Disable PDF-to-PDF embedding on PDF export (hack)Armin Le Grand (Allotropia)2021-07-062-9/+25
| | | | | | | | | | | | | | | | Due to creating PDF formats recognized as errors for PDF readers using PDF1.5 I decided for a QuickFix to have a simple possibility to disaable that feature, depending on the flag LIBO_ALLOW_PDF_TO_PDF_EMBEDDING If (initially) not defined/set, PDF-to-PDF embedding will be replaced at export to use Jpeg/PixelData instead what is uncritical and creates valid PDF files. If defined/set, all will be unchanged. This opens a quick possibility to switch back if unexpected side effects should occur. Change-Id: I5aaf833b539cdea2bb3bf165cd25990e56efa847